我正在尝试调用Web服务来获取有关特定对象的信息。它在我的测试WinForms应用程序中运行得非常好,基本上在我添加了服务引用后,除了在我的C#类中创建本地客户端,设置输入参数并调用文档中的方法之外,我没有做任何其他事情。我收到了我想要的回复。非常简单的webservive,没有https,没有魔法。
我将我的代码复制到我的MVC Web应用程序,我确保完全复制相同的url,web.config设置(绑定,端点),我甚至多次更新了服务引用,但在MVC中它不起作用。错误消息显示:
"没有端点在' webservicename'那可以接受这个消息。这通常是由错误的地址或SOAP操作引起的。有关详细信息,请参阅InnerException(如果存在)。"
内在的例外是: "无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8888"
我已经设置了我的主机文件,因为我使用的是本地IIS,并希望在网址中使用网站名称,所以我在我的主机中有这个名称:
" 127.0.0.1 www.mywebsite.local"
我感觉我的防火墙或应用程序池设置导致了这个问题,但我无法弄清楚哪一个。再一次,web服务在我的基本测试WinForms应用程序中运行得非常好。
我尝试将我的应用程序池的标识更改为除ApplicationPoolIdentity之外的其他内容(我尝试过NetworkService,LocalService,LocalSystem),但它没有帮助。
.Net版本在WinForms中为4.5,在MVC中为4.5.1。
有什么想法吗?
编辑:
看起来代理设置存在问题。在MVC web.config中,我有以下部分:
<system.net>
<defaultProxy enabled="true">
<proxy proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
我不知道为什么,但是当我把它设置为假时,问题就消失了......我不是代理专家。这是否意味着我必须在防火墙中添加特殊设置?