我能夠從VS dev服務器上運行的控制檯或網站/ web應用程序成功連接到遠程WCF服務。但是,當我嘗試從IIS託管的網站進行連接時,出現以下錯誤。任何想法?無法從IIS連接到遠程wcf服務
No connection could be made because the target machine actively refused it 12.11.121.12:80
我能夠從VS dev服務器上運行的控制檯或網站/ web應用程序成功連接到遠程WCF服務。但是,當我嘗試從IIS託管的網站進行連接時,出現以下錯誤。任何想法?無法從IIS連接到遠程wcf服務
No connection could be made because the target machine actively refused it 12.11.121.12:80
此錯誤:
No connection could be made because the target machine actively refused it
意味着一個連接請求成功通過了到目標計算機(它不是一個防火牆的問題),一個給定的端口上,並在目標機器沒有在聽對於該端口上的傳入連接,操作系統拒絕連接嘗試。
其餘錯誤標識機器12.11.121.12
和端口號80
表示嘗試連接。
該錯誤表示服務器未在目標機器上運行。如果您知道服務器正在您嘗試連接的計算機上運行,因爲您可以從其他應用程序連接到該服務器,則這表明您的連接詳細信息在網站中配置錯誤。
所以,有些事情要檢查:
someserver.org
例如,而不是12.11.121.12
,它被解析爲一個不同的IP,因爲一臺服務器是面向外部的,另一個是內部?這聽起來很像一個權限(身份驗證問題),因爲應用程序池在默認情況下在不同的用戶(機器)下運行。由於WCF使用身份驗證令牌,我相信這是您的問題。嘗試將池身份設置爲相同用戶作爲控制檯,我敢打賭它會正常工作。
奇怪的是,當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,和它的工作。
感謝您的回覆。特別是在您回覆之後,我開始關注配置。我們的計算機是通過代理配置的,所以我認爲這可能是一個問題。我在web中改變了綁定元素中的一些參數,例如bypassProxyOnLocal =「false」useDefaultWebProxy =「false」proxyAddress =「http:// proxyaddress:portno」 .config和at-once事情開始工作。我想知道爲什麼沒有人想到這一點。 – VJAI 2011-06-06 08:45:14
@Vijaya Anand:很高興你的工作。代理的無疑是最簡單的方法之一,最終與另一臺機器對話,你可以認爲你是一個:) – forsvarir 2011-06-06 12:46:07
@Mark:圍繞網站禮儀的一些事情,因爲你的問題似乎已經得到解決。如果您發現我的答案有助於解決您的問題,通常情況下,您可以通過禮貌的方式加以解決。如果你不打算接受它和/或獎賞賞金(這是合理的,因爲我沒有提到你確切的問題),那麼你應該考慮發佈你自己的答案並接受,而不是表明問題已經解決和如何。另一方面,如果您希望獲得進一步的幫助,您可能需要發佈有關您問題的更新,以指出您仍有哪些問題。 – forsvarir 2011-06-09 14:35:41