我有一个.NET客户端应用程序调用我的.NET Web服务,该服务又调用第三方Web服务,例如,在'www.foo.com'。
.NET Client -> 'My Web Service' -> 'Third Party Web Service'
从Visual Studio 2008开始,这一切都运行正常,也就是说,我在localhost:someport
中运行“我的Web服务”,成功调用了“第三方Web服务”。
然后我将“我的Web服务”发布到Windows 2003 Server框中。
现在,当“我的Web服务”调用“第三方Web服务”时,我得到例外,
“System.Net.WebException:无法解析远程名称:'www.foo.com'。”
我尝试了以下内容:
在我部署“我的网络服务”的服务器上,我打开了Internet Explorer并输入了网络服务地址“http://www.foo.com/somewebservice.asmx”。 这是成功的,因为显示了可用的Web服务方法列表。
在“我的网络服务”的web.config
文件中,我更改了“第三方网络服务”网址
从网站的名称到其IP地址。
这失败了,例外,“System.Net.Sockets.SocketException:套接字操作是
试图建立无法访问的网络“。
然后我编写了一个简单的Windows窗体测试工具来调用“第三方Web服务”。 我在服务器上运行了这个测试工具,它称之为“第三方Web服务” 成功。
然后我尝试了一个不同的第三方网络服务,其行为与上面的1,2和3相同。
最后我将IP地址添加到服务器上的“hosts”文件中,但得到的相同“远程名称无法解析”错误,虽然这次要快得多! 如果是DNS问题,那么我不希望我的测试1和3工作。
如何解决此问题?
答案 0 :(得分:7)
从马克的评论到他自己的问题:
最终这是一个代理服务器问题。异常消息是红鲱鱼。为了解决这个问题,我使用代理服务器的IP地址和端口创建了WebProxy
的实例:
WebProxy proxy = new WebProxy( proxyServerIPAddress, Convert.ToInt32( proxyServerPort ) );
myService.Proxy = proxy;
答案 1 :(得分:5)
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
/>
</defaultProxy>
</system.net>
取消您的代理设置
答案 2 :(得分:0)
我认为这也可能表明存在DNS问题,因为我暂时总结了我最近对此例外的经验。在我(最近)的经历中,异常停止被抛出(并由我的应用程序记录)'自己'。
答案 3 :(得分:0)
我们遇到了问题服务器上运行的两个应用程序的问题。只有当它按照计划在SQL作业代理下运行时才会发生错误,因此很难找出问题。原来,网络人员无法从ISA防火墙迁移到Forefront防火墙。 Iamtonyzhou在app.config中使用“usesystemdefault”的解决方案很好地作为一种解决方法,直到网络防火墙问题得到解决。我认为我不会实例化WebProxy对象,因为我们的防火墙配置总是会发生变化。
答案 4 :(得分:0)
我在2018年在我的花哨网站上遇到过这个问题,我刚刚转到新的GoDaddy VPS:System.Net.WebException:远程名称无法解析:&#39; yada.yada&#39;
尝试发送SMTP并尝试联系外部网站/ api时发生这种情况。 HttpRequests失败了。我查了一切。进入IIS设置。什么都没有..一切看起来都不错(我将价值与旧的专用服务器进行比较)。我确实在IIS下添加了一个Proxy 0设置 - 但我不认为就是这样。
最后我注意到我无法在服务器上使用IE来浏览互联网上的任何内容。我检查了所有的IE设置。一切都很好看。我通过网站应用程序池回收。没有。最后,我重新启动了服务器。当我在Noticed登录时,我现在可以使用IE浏览网站。所以我尝试了我的网站,最后它开始工作了。我不知道我做了什么,如果有的话。或者,如果服务器刚刚如此新,某些设置在初始设置时关闭,需要冷启动才能修复。无论如何,我很高兴终于得到它..我想我看了三次。
CHEERS