【问题标题】:Calling webservice from windows service从 Windows 服务调用 web 服务
【发布时间】:2013-01-09 16:59:38
【问题描述】:

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

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

我的服务有一个 app.config 文件,并且网络服务设置正确指向网络服务 url。我知道 url 是正确的,因为当我将它放入 IE 时,它会解析为 web 服务。网络服务的属性也是正确的。

任何关于服务如何获取本地主机的建议将不胜感激。

【问题讨论】:

  • 在初始化代理后编写一个打印服务 URL 的日志条目。我猜是配置有问题,但没有看到代码就无法指出。如果可能,请发布服务调用代码和配置
  • 可能是 Windows 安全问题。您是否将 process/web 方法称为提升?另外,Windows 防火墙服务是否正在运行?如果是这样,IP/端口/应用程序是否有例外? RPC 正在运行吗?检查凭据和上面列出的那些。

标签: asp.net


【解决方案1】:

可能是 Windows 安全问题。您是否将流程/网络方法称为提升?另外,Windows 防火墙服务是否正在运行?如果是这样,IP/端口/应用程序是否有例外? RPC 正在运行吗?检查凭据和上面列出的那些。

【讨论】:

  • @APW,您错过了代码 :) 请编辑您的问题以插入代码 sn-p
  • windows服务中调用webservice的代码如下: webservice ws = new webservice() ws.callMethod() // 这就是它失败的地方 Config: webservices的url
  • 抱歉,请注意如何格式化。配置文件由 VS 自动生成。以上只是我在另一台计算机上重新输入的 sn-p
  • 在某些时候它会循环回来。你有本地主机,还是某处引用的当前机器名称?
  • 我已经在项目中搜索了本地主机以及服务器中可能包含本地主机的文件,但我找不到任何对它的引用???
【解决方案2】:

我建议您使用标准 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>

【讨论】:

    【解决方案3】:

    今天在工作中使用以下代码行解决了这个问题。

    webservice ws = new webservice()   
    ws.Url = (new xxxx.Properties.Settings()).WS;
    ws.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
    

    感谢大家的帮助 干杯 美联社

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多