paip.远程服务器返回错误 (417) Expectation Failed 的解决办法

paip.远程服务器返回错误  (417) Expectation Failed 的解决办法 




作者Attilax ,  EMAIL:1466519819@qq.com






归纳其原因:
httpwebrequest控件有一个透明过程,先向服务方查询url是否存在而不发送POST的内容,服务器如果证实url是可访问的,才发送POST,早期的Apache就认为这是一种错误,而IIS


却可以正确应答




备注
当该属性设置为 true 时,使用 POST 方法的客户端请求应该从服务器收到 100-Continue 响应,以指示客户端应该发送要发布的数据。此机制使客户端能够在服务器根据请求报


头打算拒绝请求时,避免在网络上发送大量的数据




例如,假定 System.Net.Sockets.ServicePointManager.Expect100Continue 属性为 false。当请求发送到服务器时,它包括数据。如果在读取了请求报头后,服务器要求身份验


证并且必须发送 401 响应,则客户端必须用正确的身份验证报头重新发送数据。




如果该属性为 true,请求报头将发送到服务器。如果服务器没有拒绝请求,它将发送 100-


Continue 响应,指示可以传输数据。如果像前一个示例那样,服务器要求身份验证,它将发送 401 响应,而客户端不一定未传输数据。








解决方法:
-------------


写.net程序时在始化代码中,或者配置文件app.config之类的文件中
加下这么一句就可以了


ServicePointManager.Expect100Continue = false;








参考:
-----------
C# 模拟post数据提交时 出现如下错误  System.Net.WebException  远程服务器返回错误  (417) Expectation Failed 的解决办法 - aparche - 博客园
Expect100Continue_土豆爸爸_新浪博客.htm
posted @ 2013-04-15 11:27  attilaxAti  阅读(50)  评论(0编辑  收藏  举报