这里有点茫然。
我照顾一个大型的SharePoint 2016服务器场,其中包含大约1200万个文档。
它们存在于大约15个组织良好的文档中心中,所有文档中心都非常遵守Microsoft的大规模文档存储准则。
要花一段时间才能找到答案,但看来两个Web前端之一上的HTTP.SYS都会为随机URL抛出HTTP 400。
我看不到任何图案。大多数网址都可以使用,有些则不能。
例如,为简单起见,使用wget和curl,我从这种情况中得到随机失败:
$Credentials = Get-Credential
wget "http://wfe.ip.address.here/managedpath/doccentresitename/Documents/11-27/big long file name but with no illegal characters.pdf" -outfile _test.pdf -Credential $Credentials
或
curl -v -o _test.pdf "http://wfe.ip.address.here/managedpath/doccentresitename/Documents/11-27/big long file name but with no illegal characters.pdf" -u 'username:password' --ntlm
(我正在使用上面的IP地址绕过我们的NGiNX负载均衡器。使用主机名也会失败。实际上,所有这些示例都是在给定URL上对文件进行简单的HTTP GET。)
某些URL有效。其他人没有。同一文件夹中的某些文件可以工作,有些则不能。
奇怪的是,如果我将URL直接粘贴到Web浏览器中,它们将始终有效。
我在IIS日志中什么也看不到。请求永远不会到达IIS。
在HTTPERR日志中,我可以看到400错误的请求,但没有进一步说明原因。
我在Windows事件日志中看不到任何用处(谁做过?)。
我曾尝试将控制HTTP.SYS的MaxFieldLength和MaxRequestBytes注册表设置提高到https://support.microsoft.com/en-us/help/820129/http-sys-registry-settings-for-windows中所述的最大值,但这没有效果。
我注意到的是,如果我直接在其中一台Web服务器上运行它,则上面的wget可以正常工作,而其他任何外部(即来自客户端计算机)的wget都失败。
这使我认为这是某种奇怪的身份验证问题或与网络相关的问题,这不是我的专业领域。
有什么想法,很高兴吗?