WCF分布式開發常見錯誤解決(11):There is already a listener on IP endpoint ,IP 終結點 已經存在偵聽器
進行WCF服務終結點配置的過程中,當你配置服務終結點端口,啟動服務程序的時候會遇到如下錯誤,服務無法啟動,1.錯誤信息如下:
IP終結點(端口) 0.0.0.0:8002已經存在一個偵聽器,請確保程序中沒有多次使用一個終結點,或別的程序沒有監聽此終結點(端口)
There is already a listener on IP endpoint 0.0.0.0:8002. Make sure that you are not trying to use this endpoint multiple times in your application and that there are no other applications listening on this endpoint.
2.原因:此端口已經被使用,即已經有程序在使用一個相同的端口所致。必須我們配置兩個服務終結點使用一個終結點端口
<endpoint address="http://localhost:8002/WCFService" binding="wsHttpBinding" contract="WCFService.IWCFService">
</endpoint>
<endpoint
address="net.tcp://localhost:8002/WCFService"
binding="netTcpBinding" bindingName="netTcpBinding"
contract="WCFService.IWCFService">
</endpoint>
運行服務程序就會出現錯誤。
3.解決辦法:
(1)檢查機器的端口,確保此端口不是系統服務端口,或者沒被其他程序使用。
(2)檢查服務終結點配置信息,確保兩個不同的服務使用不同的終結點端口
此例中的修改代碼改為端口8001即可:
<endpoint
address="http://localhost:8001/WCFService"
binding="wsHttpBinding"
contract="WCFService.IWCFService">
</endpoint>