System.ServiceModel.CommunicationException: A TCP error (10013: An attempt was made to access a socket in a way forbidden by its access permissions) occurred while listening on IP Endpoint=0.0.0.0:8888

Внезапно не завёлся простейший WCF-сервис с привязкой "netTcpBinding" (WCF self-hosted в windows-службе).

	...

        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://server:8888/Service"/>
          </baseAddresses>
        </host>

	...

        <endpoint
            address=""
            binding="netTcpBinding"
            contract="Contoso.IService" />
	
	...

В логах появлялось следующее сообщение при попытке запустить службу:

Service cannot be started. System.ServiceModel.CommunicationException: A TCP error (10013: An attempt was made to access a socket in a way forbidden by its access permissions) occurred while listening on IP Endpoint=0.0.0.0:8888. ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at System.ServiceModel.Channels.SocketConnectionListener.Listen()
   --- End of inner exception stack trace ---
   at System.ServiceModel.Channels.SocketConnectionListener.Listen()
   at System.ServiceModel.Channels.BufferedConnectionListener.Listen()
   at System.ServiceModel.Channels.ExclusiveTcpTransportManager.OnOpen()
   at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
   at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTra...

Как оказалось, проблема не в правах доступа, как настойчиво утверждалось в сообщении, а в том, что данный номер порта уже задействован.

Выполняем и удостоверяемся:

C:\> netstat -an
Русский
field_vote: 
3.8
Average: 3.8 (30 votes)

Добавить комментарий