从Windows服务调用webservice

时间:2013-01-09 16:59:39

标签: asp.net

我有一个引用asp.net webservice的Windows服务项目。当我通过VS在我的机器上本地运行此服务时,它工作正常,当我调用web方法时,我得到了我想要的结果。

今天我将它部署到测试服务器,当我调用web方法时,它失败了,因为它试图连接到本地主机webservice而不是服务器上的那个。我得到的错误是“无法连接到远程服务器 - > System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它:127.0.0.1”

我的服务有app.config文件,网络服务设置正确指向网络服务网址。我知道网址是正确的,因为当我把它放入IE时,它解析为web服务。 Web服务的属性也是正确的。

有关服务如何获取localhost的任何建议都将非常感谢。

3 个答案:

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