意外的“100继续”

我有2台服务器(使用Windows Server 2003)使用.Net远程进行通信。 由于某些体系结构的原因,我在这两个服务器之间有一个代理,这个代理从请求中删除了从一台服务器到另一台服务器的“Expect:100-continue”标头。 问题是,当代理将消息发送到没有此头的第二个服务器时,目标服务器响应“100 continue”。 这个行为导致我们很多问题,因为代理丢弃整个http对话,当它“100继续”。 我GOOGLE了这个问题,我发现有一个Windows Server 2003 SP1中的错误,这应该是在SP2中修复的,但是在我安装之后,问题仍然存在。 有谁知道如何解决它,或configurationhttp.sys不发送“100继续”?

尝试强制http / 1.0通信[通过重新configuration代理,更改客户端代码或http服务器configuration]。 这会降低性能[如果您使用例如keep-alive],但应该解决问题。

许多代理服务器正在使用HTTP 1.0。 当两端的软件试图使用1.1function时,事情就会变得疯狂起来。

在某些需要协商的情况下,客户端和服务器都可以同意1.1是合适的协议(并且代理服务器假装继续)。 那么当1.1级别的通信实际发生时,代理服务器会去掉它不理解的东西。

从客户端切换到1.0通常是获得可靠结果的最简单的方法。

如果您正在使用Web服务,则可能需要帮助程序类来修改请求。 如果这是你在做什么,我会查找一个例子。