2013-07-09 160 views
0

我有兩個需要彼此交談的應用程序。我在每個應用程序中都實現了一個WCF服務,這兩個服務都開放了接收其他請求的通道。問題是,當兩個通道都打開時,我得到一個「沒有端點在net.pipe:// localhost監聽,可以接受消息」異常。WCF進程間通信

如果我只打開其中一個,那麼他們都工作。我如何實現雙向WCF,或者至少允許兩個應用程序作爲服務器和客戶端?

馬克

回答

1

您的問題顯示混亂,讓我更加困惑。第一步:你到底在做什麼?你想要兩個應用程序進行通信?然後一般你需要一個'服務器'和'客戶端'。使用雙工通信,雙方都可以向另一方發送消息,而無需請求響應(如HTTP)。

因此,讓第一個應用程序啓動,作爲服務器,其他(s)作爲客戶端。要充當客戶端,您可以使用Service Reference,一個強類型的WCF客戶端。

+0

感謝您的repsonse和抱歉讓您迷惑!我有兩個應用程序,並在每個應用程序中創建一個服務器,由另一個應用程序調用。您能否提供一個服務器向客戶端撥打電話的例子?我不知道如何做到這一點。客戶端在運行應用程序的不同時間調用其服務器。 – serlingpa

+0

如果您嘗試在較小的部分分割問題,則會看到其中任何一個問題都有答案,例如, [WCF - 回撥到客戶端(雙工?)](http://stackoverflow.com/questions/2735079/wcf-calling-back-to-client-duplex)。 :-) – CodeCaster

1

您可以在每個應用程序中實現一個服務器。他們必須監聽不同的端點(不同的標識符)。然後,每個應用程序需要有一個連接另一個應用程序中的服務器的客戶端。

這樣,兩個應用程序都可以以相似的方式實現,但是是獨立的。實際上,您可以創建一個同時具有服務器/客戶端和通過應用程序配置(app.config)配置端點的程序集。

使用一臺服務器/一臺客戶端應該取決於應用程序的實際任務。如果他們是平等的,那麼很難判斷誰是服務器,誰是客戶端。