2013-01-09 111 views
0

我有一個引用了asp.net web服務的windows服務項目。當我通過VS在本地機器上運行此服務時,它工作正常,當我調用Web方法時,我得到了我想要的結果。從Windows服務調用webservice

今天我將它部署到測試服務器,當我調用web方法時,它失敗了,因爲它試圖連接到本地主機web服務而不是服務器上的服務器。我得到的錯誤是「無法連接到遠程服務器 - > System.Net.Sockets.SocketException:無法建立連接,因爲目標機器主動拒絕它:127.0.0.1」

我的服務有一個應用程序。配置文件和Web服務設置正確指向web服務url。我知道網址是正確的,因爲當我把它放入IE時,它解析爲web服務。此外,Web服務的屬性也是正確的。

有關服務如何獲得本地主機的任何建議將不勝感激。

+0

寫日誌條目打印服務UR​​L初始化代理後。我猜測配置有問題,但沒有看到代碼就無法指出。如果可能,發佈服務調用代碼並配置 – Dhawalk

+0

可能是Windows安全問題。你是否將過程/網絡方法稱爲提升?此外,Windows防火牆服務正在運行?如果是這樣,那麼IP /端口/應用程序進程有例外情況嗎? RPC運行?檢查憑證和上面列出的憑證。 – ApolloSoftware

回答

0

今天解決了這個問題,使用下面幾行代碼。

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

感謝您的所有幫助球員 乾杯 APW

0

可能是Windows安全問題。你是否將過程/網絡方法稱爲提升?此外,Windows防火牆服務正在運行?如果是這樣,IP /端口/應用程序進程有例外嗎? RPC運行?檢查憑證和上面列出的憑證。

+0

調用webservice的代碼如下所示: – APW

+0

@APW,您錯過了代碼:)請編輯您的問題以插入代碼片段 – Dhawalk

+0

調用webservice的windows服務中的代碼如下所示: webservice ws = new webservice () ws.callMethod()//這是它翻倒 配置: <應用程序設置> <設置名= 「Web服務名稱」 serializeAS = 「字符串」> webservices的網址 APW

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> 
+0

我會在此向您致謝 – APW