我想在兩臺機器之間進行WCF通信,其中一臺將充當服務器,另一臺充當客戶端。我能夠使其在我的系統中工作,但當我嘗試連接到我的朋友的系統時它不起作用。兩臺PC之間的WCF通信不起作用
編輯:一個奇怪的事情現在正在發生。我剛剛通過提供「wcftestclient地址」從命令提示符啓動了wcftestclient。它檢索了我朋友的服務器的元數據。但是,當我調用該操作時,它會給出錯誤「沒有端點在本地主機上偵聽」。它怎麼可能是本地主機?它應該是我朋友的IP地址,對嗎?
我想在兩臺機器之間進行WCF通信,其中一臺將充當服務器,另一臺充當客戶端。我能夠使其在我的系統中工作,但當我嘗試連接到我的朋友的系統時它不起作用。兩臺PC之間的WCF通信不起作用
編輯:一個奇怪的事情現在正在發生。我剛剛通過提供「wcftestclient地址」從命令提示符啓動了wcftestclient。它檢索了我朋友的服務器的元數據。但是,當我調用該操作時,它會給出錯誤「沒有端點在本地主機上偵聽」。它怎麼可能是本地主機?它應該是我朋友的IP地址,對嗎?
<add baseAddress=...>
是<services>
部分的一部分,而不是客戶端。要改變一個WCF 客戶所使用的基地址,您需要設置客戶端部分地址:
<client>
<endpoint address="http://your_friend_ip/address" binding=... contract=..." />
</client>
另請注意,您可能需要在服務的防火牆打開一些端口有請求通過。另一件事,如果你的朋友的服務啓用了元數據,那麼你可以在你的機器上添加一個服務引用(使用VS添加服務引用或者使用svcutil)指向你的朋友的服務,並且這將創建具有適當端點地址的配置。
感謝您的回覆。我們都完全關閉了防火牆。另外,我改變了客戶部分的地址,就像你說的那樣。所以,我可以從app.config中刪除服務部分嗎?另外,如何檢查我的朋友是否啓用了元數據? – CuriousCoder 2011-05-27 17:18:33
如果您只想將該應用程序用作客戶端,那麼是的,您可以刪除
是的,我只想讓我的系統只作爲客戶端。我在app.config中完全刪除了服務部分。而且,我的客戶端部分只有端點地址作爲本地主機。現在,我添加了一個服務參考給我的朋友的服務。當我運行客戶端時,它給出了WCF服務主機找不到任何元數據的錯誤,這可能會導致客戶端無法正常工作。我想它的bcoz它檢查我的系統中的服務,而不是他的系統 – CuriousCoder 2011-05-27 17:33:44
我們在同一個wifi連接。如果我給了一個錯誤的IP,我的客戶端給出了錯誤......只有當我給我的朋友的正確IP地址時,它纔會連接...但是,我調用的操作不會在他的結尾工作。它轉到我的系統上的服務,併爲所有屬性給出一個空值,理想情況下應該等於我給出的值作爲輸入。 – CuriousCoder 2011-05-27 17:08:01