我有一个引用asp.net webservice的Windows服务项目。当我通过VS在我的机器上本地运行此服务时,它工作正常,当我调用web方法时,我得到了我想要的结果。
今天我将它部署到测试服务器,当我调用web方法时,它失败了,因为它试图连接到本地主机webservice而不是服务器上的那个。我得到的错误是“无法连接到远程服务器 - > System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它:127.0.0.1”
我的服务有app.config文件,网络服务设置正确指向网络服务网址。我知道网址是正确的,因为当我把它放入IE时,它解析为web服务。 Web服务的属性也是正确的。
有关服务如何获取localhost的任何建议都将非常感谢。
答案 0 :(得分:0)
可能是Windows安全问题。您是否将进程/ Web方法称为提升?此外,Windows防火墙服务正在运行吗?如果是这样,IP /端口/应用程序进程有例外吗? RPC正在运行吗?检查凭据和上面列出的凭据。
答案 1 :(得分:0)
我建议您使用标准WCF配置存储代理的地址。这是一个例子。
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IService1" />
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://yourServerIP:51717/Service1.svc" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IService1" contract="ServiceReference1.IService1"
name="WSHttpBinding_IService1">
</endpoint>
</client>
</system.serviceModel>
答案 2 :(得分:0)
今天使用以下代码行解决了这个问题。
webservice ws = new webservice()
ws.Url = (new xxxx.Properties.Settings()).WS;
ws.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
感谢您的帮助 干杯 APW