今天在做接口开发时,遇到了一个异常:无法解析此远程名称: 'www.***.com'。我的网站一直是运行正常的,从昨天开始出现异常,用户可以使用,但我的服务器怎么也无法实现对数据库的更新。
分析原因:从防火墙屏蔽端口到支付宝签约id是否过期,最后才找出原因,原来我的服务器DNS解析错误,无法访问到调用的远程服务器。原因是:服务器不能上外网。
解决办法如下:
在服务器上执行:开始|运行|cmd ping www.***com //注:ping 后面的地址是你调用的远程服务器的域名。
如果可以ping通,说明DNS解析正确。
如果ping不通,找一台可以在公网访问到的机器再ping一下,记录下这个域名对应的IP地址。(举个例子,假如我们现在要调用远程服务器:www.alipay.com ,ping 这个域名后发现它的ip是110.75.136.21 。)
进入C:\WINDOWS\system32\drivers\etc 目录,找到hosts文件,打开,在文件尾部加入以下内容:
127.0.0.1 localhost
110.75.136.21 www.alipay.com
保存hosts文件。在你的程序中重新调用远程服务器就可以了。
===================================
System.Net.WebException: 请求因 HTTP 状态 417 失败: Expectation failed 问题
今天被System.Net.WebException: 请求因 HTTP 状态 417 失败: Expectation failed的问题搞死了
通过url访问服务器上的webservice是没问题的
但在程序中访问就出现System.Net.WebException: 请求因 HTTP 状态 417 失败: Expectation failed这个问题了
只能通过配置host指向webservice的服务器才能调用
baidu,google了无数次 ,原来是请求头的问题
在new了webservice后,调用webservice的方法之前加上
System.Net.ServicePointManager.Expect100Continue = false;
搞掂,世界一下清净了。
原文:
http://blog.csdn.net/wwzqj/article/details/7208332