我最近一直在尝试在 SharePoint 2013 中设置 SSL。使用通配符证书、主机标头和绑定到所有未分配项,它一直运行良好。但是,我现在需要混合使用另一个证书,因此我不能在“所有未分配项”上拥有两个不同的证书,而是需要绑定到 IP 地址。
问题是,如果将 IIS 站点分配给 IP 地址,则每个 SharePoint Web 应用程序都会生成 404。所有未分配均可正常工作,但使用 IP 时始终为 404。
我测试过创建一个没有 SharePoint 的普通 IIS 站点。在所有情况下都可以正常工作,无论是全部未分配还是绑定到 IP,都不会出现 404 错误。
我测试了关闭 SharePoint IIS 并在普通 IIS 站点上使用其主机名,因此我知道这不是 DNS 问题...主机名工作正常并正确路由到正确的 IIS 站点,“全部未分配”或绑定到 IP 地址。
我也在没有 SSL 的情况下测试了这一切。SSL 也不是罪魁祸首。同样的行为只发生在配置了常规 HTTP 的 SharePoint 站点上。所有未分配的站点均可工作,绑定到 IP 地址时始终出现 404 错误。
当发生 404 时,SharePoint ULS 日志显示:
Reached maximum number of failed machines based on ping results for this routing group
Mapping URI https://myhostname to https://myserversname
由于 ULS 日志显示“任何内容”,我知道请求正在通过 IIS 进入 SharePoint,因此这一定是 SharePoint 问题。
我被难住了。花了几个小时在搜索引擎上搜索、尝试这里、Stack Overflow 等,却没有在任何地方找到关于这个问题的任何提及。我甚至尝试在我的一个 SharePoint 2013 开发虚拟机中重现这个问题,但一切都按预期工作。在处理 IP 地址绑定时没有出现 404 错误。我最近刚刚对客户端 SharePoint 2010 服务器做了同样的事情,同样,一切都按预期工作。所有 IP 地址绑定的 IIS 站点都可以完全访问。似乎只有这台特定服务器上的这台特定的 SharePoint 2013 安装才是如此。
希望有人能对这个问题有所了解。我还没有找到任何记录在案的案例。几天来,我一直在调整 DNS 中的主机名、此服务器上的 IIS 绑定、其他服务器上的 IIS 绑定、使用相同主机名和 IP 绑定创建测试站点等,在每种情况下,问题都不会发生在任何其他服务器上,只会发生在 SharePoint 的这个特定安装上。
谢谢。
答案1
好吧,我解决了这个问题。禁用中央管理中的请求管理服务后,一切都按预期运行。现在我可以将我的任何网站绑定到自己的 IP 地址,而不会出现 404 错误。
我想,虽然这个答案确实解决了我眼前的问题,但它并没有回答导致此问题的请求管理服务出了什么问题。或者我只是不明白请求管理服务的实际用途,它根本不应该被打开。果然,请求管理服务在我的其他 SharePoint 2013 环境中也处于关闭状态,而一切都按预期运行。