Размещение службы WCF (конечной точки mex) в службе Windows на Windows 2008 - PullRequest
0 голосов
/ 20 августа 2009

Я размещаю службу WCF внутри службы Windows.

Когда я запускаю WHS, я получаю следующую ошибку:


The ChannelDispatcher at 'net.tcp://mysecreturl/' with contract(s) '"IClass"' is unable to open its IChannelListener.

System.InvalidOperationException: A registration already exists for URI 'net.tcp://mysecreturl/Indexer/'.
   at System.ServiceModel.Channels.UriPrefixTable`1.RegisterUri(Uri uri, HostNameComparisonMode hostNameComparisonMode, TItem item)
   at System.ServiceModel.Channels.ConnectionOrientedTransportManager`1.Register(TransportChannelListener channelListener)
   at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
   at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
   at System.ServiceModel.Channels.ConnectionOrientedTransportChannelListener.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.TcpChannelListener`2.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)

   at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at VBoD.Search.WindowsServiceHost.WindowsServiceHost.OnStart(String[] args) in D:\......:line 29

System.ServiceModel

Это где-то в Windows или они зарегистрированы и незарегистрированы, когда я запускаю / останавливаю процесс?

1 Ответ

2 голосов
/ 20 августа 2009

Используйте другую конечную точку для Mex. Возможно, ему нужен другой номер порта, чем у вашего порта net.tcp. Если ваш порт net.tcp 8000, попробуйте

<endpoint address="net.tcp://mysecreturl:8001/Mex" 
          contract="IMetadataExchange" />
...