2011-05-26 116 views
5

我能夠從VS dev服務器上運行的控制檯或網站/ web應用程序成功連接到遠程WCF服務。但是,當我嘗試從IIS託管的網站進行連接時,出現以下錯誤。任何想法?無法從IIS連接到遠程wcf服務

No connection could be made because the target machine actively refused it 12.11.121.12:80

回答

4

此錯誤:

No connection could be made because the target machine actively refused it

意味着一個連接請求成功通過了到目標計算機(它不是一個防火牆的問題),一個給定的端口上,並在目標機器沒有在聽對於該端口上的傳入連接,操作系統拒絕連接嘗試。

其餘錯誤標識機器12.11.121.12和端口號80表示嘗試連接。

該錯誤表示服務器未在目標機器上運行。如果您知道服務器正在您嘗試連接的計算機上運行,​​因爲您可以從其他應用程序連接到該服務器,則這表明您的連接詳細信息在網站中配置錯誤。

所以,有些事情要檢查:

  • 是否有目標Web服務在app.config/web.config配置細節之間的差異?具體來說,機器名稱(12.11.121.12)和端口號(80)似乎是潛在的。
  • 您是否在與運行的控制檯/ Web應用程序相同的機器上運行IIS託管的網站?如果沒有,兩臺機器解析目標服務器的名稱(您使用someserver.org例如,而不是12.11.121.12,它被解析爲一個不同的IP,因爲一臺服務器是面向外部的,另一個是內部?
+0

感謝您的回覆。特別是在您回覆之後,我開始關注配置。我們的計算機是通過代理配置的,所以我認爲這可能是一個問題。我在web中改變了綁定元素中的一些參數,例如bypassProxyOnLocal =「false」useDefaultWebProxy =「false」proxyAddress =「http:// proxyaddress:portno」 .config和at-once事情開始工作。我想知道爲什麼沒有人想到這一點。 – VJAI 2011-06-06 08:45:14

+0

@Vijaya Anand:很高興你的工作。代理的無疑是最簡單的方法之一,最終與另一臺機器對話,你可以認爲你是一個:) – forsvarir 2011-06-06 12:46:07

+1

@Mark:圍繞網站禮儀的一些事情,因爲你的問題似乎已經得到解決。如果您發現我的答案有助於解決您的問題,通常情況下,您可以通過禮貌的方式加以解決。如果你不打算接受它和/或獎賞賞金(這是合理的,因爲我沒有提到你確切的問題),那麼你應該考慮發佈你自己的答案並接受,而不是表明問題已經解決和如何。另一方面,如果您希望獲得進一步的幫助,您可能需要發佈有關您問題的更新,以指出您仍有哪些問題。 – forsvarir 2011-06-09 14:35:41

0

這聽起來很像一個權限(身份驗證問題),因爲應用程序池在默認情況下在不同的用戶(機器)下運行。由於WCF使用身份驗證令牌,我相信這是您的問題。嘗試將池身份設置爲相同用戶作爲控制檯,我敢打賭它會正常工作。

+0

如果目標機器沒有監聽正在進行連接嘗試的端口(本例中是因爲代理設置,請參閱我的答案中的ops註釋),則會發生此錯誤「目標機器主動拒絕它」。如果這是一個權限問題,錯誤更可能是'權限被拒絕'或'身份驗證失敗',但是這種驗證級別不會在*連接建立之後發生。 – forsvarir 2011-06-13 19:09:16

+0

好點,謝謝你的清晰度 – hivie7510 2011-06-14 08:17:52

0

奇怪的是,當Web應用程序中useDefaultWebProxy爲「true」時,出現此錯誤,但在單元測試中完全相同的代碼和設置正常工作姑娘。

事實證明,該Web應用程序正在使用網頁瀏覽器代理(公司政策)https://foo/bar:1234。當我設置此明確地使用:

<system.serviceModel> 
    <bindings> 
    <wsHttpBinding> 
     <binding name=... 
      useDefaultWebProxy="false" proxyAddress="https://foo/bar:1234" 
     ... 

我得到了錯誤:

The ServicePointManager does not support proxies with the https scheme

所以我改變了代理服務器地址爲http,不是HTTPS,和它的工作。