我正在C#应用程序中访问Dynamics 365 Business Central OData API,当访问本地系统中的数据正常时,当我们将应用程序部署到客户端服务器时,随机(50%)出现错误“The server committed a protocol violation. Section=ResponseStatusLine”。
我已经检查了文章https://techcommunity.microsoft.com/t5/iis-support-blog/protocol-violation-section-responsestatusline/ba-p/1227792并应用了所有3个建议,但 * 没有一个起作用 *。
我能够在本地系统中访问客户端Business Central API集成应用程序,没有任何问题。
假设这是客户端防火墙或负载平衡器问题。但无法找到解决方案。
1条答案
按热度按时间8fsztsew1#
此问题背后有许多情况,即避免问题而不是实际修复问题。此错误最常见的原因之一是请求中的标头损坏或丢失。
解决方案:
1.服务器以不正确的方式响应100 continue。将expect 100 continue设置为false并将套接字空闲时间减少到两秒
1.忽略损坏/丢失的标头。参考:Link
1.如果skype正在机器上运行,请停止它。
1.如果一个web服务器使用
UTF-8
来输出byte-order-marker
(BOM)。例如,默认的常量Encoding.UTF8
输出BOM,这很容易忘记。网页在Firefox和Chrome中可以正常工作,但是HttpWebRequest
会爆炸。一个快速的解决方法是将web服务器改为使用UTF-8
编码,它不输出BOM。1.检查请求服务器的端点。例如:
https
或http
中的一个或多个。