为什么我从Web应用程序而不是控制台应用程序中获取无法连接到远程服务器异常?

wog*_*les 15 c# web-services

我有一个在启用了匿名访问的测试服务器上运行的asmx Web服务.

当我将Web引用添加到控制台应用程序并调用一个简单的Hello World方法时,如下所示:

PivotService.PivotService p = new PivotService.PivotService();
String s = p.SayHello();
Run Code Online (Sandbox Code Playgroud)

当我在Web应用程序的页面加载中执行完全相同的操作时,我得到了一个System.Net.WebException: {"Unable to connect to the remote server"}.

内部异常是{"No connection could be made because the target machine actively refused it 127.0.0.1:8888"},errorCode 10061.

为什么这可以从控制台应用程序而不是Web应用程序工作?

Mar*_*909 28

这可能是由于应用程序之间的代理设置不同.查看配置文件中Default Proxy元素周围的MSDN文档.

  • app.config或web.config中没有defaultProxy元素.将其添加到web.config并设置enabled = false.修正了问题:)谢谢 (6认同)
  • 谢谢!!我为此疯狂,但这完全是我自己做的.我创建了一个代理条目来过滤流量到fiddler.在离开代码一段时间后我回到它遇到了这个错误,Fiddler没有打开,因此代理失败了.再次感谢! (3认同)

Kir*_*n R 16

在使用命名空间中的HttpClient类时,我也处于类似的情况System.Net.Http.我试图通过公司代理服务器进行网络呼叫.

虽然此HttpClient调用能够在Visual Studio中从控制台应用程序调用时成功解析dns的IP,但是当从Web API调用时,dns解析失败.事实证明,我必须在web api应用程序的web.config中输入此条目.

<system.net>
    <defaultProxy />
</system.net>
Run Code Online (Sandbox Code Playgroud)

感谢Mark 909给出了指向正确方向的答案.有关其他信息,请参阅默认代理.