WCF分布式開發常見錯誤解決(9):無終結點監聽,There was no endpoint listening at
當我們添加服務元數據地址,查找元數據服務,進行反序列操作。會出現這樣的錯誤:無終結點監聽Metadata contains a reference that cannot be resolved: 'net.tcp://localhost:9004/mex'.
There was no endpoint listening at net.tcp://localhost:9004/mex that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
If the service is defined in the current solution, try building the solution and adding the service reference again.如圖所示:
可能原因:此錯誤是由於
1.元數據服務地址錯誤導致。
2.托管宿主沒有啟動。
解決辦法:
1.配置元數據交換終結點,如<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
2.運行托管宿主;
3.輸入對應的元數據交換終結點地址即可。注意例子裡是http元數據交換協議,我們查詢元數據服務的時候一定要注意綁定協議。
備注:skypan發現的這個錯誤,表示感謝,這裡特定整理出來供大家參考。
4.此外如果部署IIS托管WCF服務,很可能出現這樣的錯誤。主要是服務地址在部署以後路徑導致地址錯誤:有網友在WCF中文論壇討論了此問題。大家可以參考:
CSQ333: 請教在開發的時候都OK的,部署到WIN2003上後就出現錯誤了:
http://social.msdn.microsoft.com/Forums/en-US/wcfzhchs/thread/bf879ce5-aff5-484f-b6ed-65ee6a0c69aa。
NineTyNine_LiPei:客戶端調用服務的終結點地址的路徑問題的測試(IIS托管WCF服務程序):
http://social.msdn.microsoft.com/Forums/en-US/wcfzhchs/thread/4ce24ea1-ece5-423d-b07b-a39692895b72