异常原因“System.Net.WebException:无法解析远程名称”?

时间:2009-09-11 11:51:10

标签: .net web-services

我有一个.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'。”

我尝试了以下内容:

  1. 在我部署“我的网络服务”的服务器上,我打开了Internet Explorer并输入了网络服务地址“http://www.foo.com/somewebservice.asmx”。 这是成功的,因为显示了可用的Web服务方法列表。

  2. 在“我的网络服务”的web.config文件中,我更改了“第三方网络服务”网址 从网站的名称到其IP地址。 这失败了,例外,“System.Net.Sockets.SocketException:套接字操作是 试图建立无法访问的网络“。

  3. 然后我编写了一个简单的Windows窗体测试工具来调用“第三方Web服务”。 我在服务器上运行了这个测试工具,它称之为“第三方Web服务” 成功。

  4. 然后我尝试了一个不同的第三方网络服务,其行为与上面的1,2和3相同。

  5. 最后我将IP地址添加到服务器上的“hosts”文件中,但得到的相同“远程名称无法解析”错误,虽然这次要快得多! 如果是DNS问题,那么我不希望我的测试1和3工作。

  6. 如何解决此问题?

5 个答案:

答案 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