Я пытаюсь установить связь между WCF, размещенным в службе Windows, и моим графическим интерфейсом службы. Проблема в том, что когда я пытаюсь выполнить метод OperationContract, я получаю
"ChannelDispatcher at
'Net.tcp: // локальный: 7771 / MyService'
с контрактом (ами)
невозможно открыть свой IChannelListener. "
Мой app.conf выглядит так:
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="netTcpBinding">
<security>
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:7772/MyService" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyServiceBehavior"
name="MyService.Service">
<endpoint address="net.tcp://localhost:7771/MyService" binding="netTcpBinding"
bindingConfiguration="netTcpBinding" name="netTcp" contract="MyService.IContract" />
</service>
</services>
</system.serviceModel>
Порт 7771 прослушивает (проверено с помощью netstat), и svcutil может генерировать для меня конфиги.
Любые предложения будут оценены.
Трассировка стека из исключения
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Есть одно внутреннее исключение (но не в Exeption.InnerExeption, а в Exeption.Detail.InnerExeption - метод ToString () этого не показывает)
Уже существует регистрация для URI 'net.tcp: // localhost: 7771 / MyService'.
Но мой сервис указал этот URI только в файле app.config, нигде больше. Во всем решении этот URI появляется на сервере один раз, а на клиенте один раз.