前几天一个店面反映,在登陆客户端的时候提示同步时钟失败(在客户端运行时会调用webservice),当时我以为又是网络质量差的问题,就没管。结果过了两天他们又打电话来催,说还是同步时钟失败。连上去看了一下日志文件发现异常信息是HTTP错误417,而不是常见的无法连接到远程服务器。当时就觉得奇怪,检查了一下ie没有使用代理(在设置代理的情况下也有可能出现访问失败),后来在google里面搜了一下,发现有好多人也遇到过类似的问题。
解决方案:在调用webservice方法之前加
原因:expect100Continue,是用在 客户端向 WEB SERVER 端,发送POST数据的情形下,在POST数据发送前,客户端会先发送一个HEAD指令到SERVER,SERVER如果返回100,则客户端才真正的POST数据到SERVER,否则就表示SERVER端不存在接受者在 ,IIS 下,是没问题的。IIS都会返回100状态, 但是,对于某些版本,并无这个约束,也就是说,不会理会100的这个请求,所以就导致了不能正常POST数据上去了。
解决方案:在调用webservice方法之前加
System.Net.ServicePointManager.Expect100Continue = false;
原因:expect100Continue,是用在 客户端向 WEB SERVER 端,发送POST数据的情形下,在POST数据发送前,客户端会先发送一个HEAD指令到SERVER,SERVER如果返回100,则客户端才真正的POST数据到SERVER,否则就表示SERVER端不存在接受者在 ,IIS 下,是没问题的。IIS都会返回100状态, 但是,对于某些版本,并无这个约束,也就是说,不会理会100的这个请求,所以就导致了不能正常POST数据上去了。