После успешного получения службы WCF и клиента для общения друг с другом по протоколу Http я сейчас пытаюсь подключить его к netTcp, чтобы можно было зашифровать связь. Однако у меня возникают проблемы с установлением соединения по этому протоколу.
После изменения файла App.config в службе и удаления ссылки на службу в клиентском проекте я пытаюсь повторно добавить ссылку на службу. Нажатие «обнаружить» находит службу, но в http с адресом http://localhost:31284/MyService.svc, который не является нигде указанным мной адресом: я предполагаю, что он должен быть по умолчанию. Если я пытаюсь добавить этот сервис, я получаю сообщение об ошибке:
HTML-документ не содержит веб
служба обнаружения информации.
Метаданные содержат ссылку, которая
не может быть решен:
«http://localhost:31284/MyService.svc'.
Тип контента приложения / мыло + xml;
charset = utf-8 не поддерживается
оказание услуг
http://localhost:31284/MyService.svc.
Привязки клиента и сервиса могут быть
несовпадающими. Удаленный сервер вернулся
ошибка: (415) неподдерживаемый носитель
Тип. Если услуга определена в
текущее решение, попробуйте построить
решение и добавление услуги
ссылка снова.
В конфигурации моего приложения я указал адрес конечной точки как net.tcp: // localhost: 8732 / Design_Time_Addresses / NameSpace.ApiServices.Server / MyService. Если я вставлю этот адрес в окно справочника услуг и попытаюсь подключиться к нему или попытаться подключиться с помощью тестового клиента WCF, он также не будет выполнен. Оба выдают очень похожие ошибки:
Метаданные содержат ссылку, которая
не может быть решен:
'Net.tcp: // локальный: 8732 / Design_Time_Addresses / NameSpace.ApiServices.Server / MyService.
Не удалось подключиться к
net.tcp: // локальный: 8732 / Design_Time_Addresses / NameSpace.ApiServices.Server / MyService.
Попытка подключения продолжалась в течение
промежуток времени 00: 00: 02.0142014. TCP
код ошибки 10061: не удалось подключиться
быть сделано, потому что целевая машина
активно отказался от этого 127.0.0.1:8732.
Соединение не может быть установлено, потому что
целевая машина активно отказывалась
127.0.0.1:8732 Если служба определена в текущем решении, попробуйте
построение решения и добавление
сервисная ссылка снова.
Не уверен, что происходит. Оба работают на одной машине, и мой брандмауэр выключен. Я проверил netstat -a и не смог увидеть прослушивание TCP на порту 8732, но у меня включена и включена служба общего доступа к портам в моей конфигурации. Который выглядит так:
<bindings>
<netTcpBinding>
<binding portSharingEnabled="True" name="tcpBinding" closeTimeout="00:10:00" openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security>
<transport>
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="standard">
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="NameSpace.ApiServices.Server.MyService" behaviorConfiguration="standard">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="tcpBinding" contract="NameSpace.ApiServices.Server.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8732/Design_Time_Addresses/NameSpace.ApiServices.Server/MyService/" />
</baseAddresses>
</host>
</service>
</services>
Кто-нибудь может увидеть, что я делаю не так?
РЕДАКТИРОВАТЬ: меня попросили конфигурации моего клиента:
<bindings>
<netTcpBinding>
<binding name="tcpBinding" closeTimeout="00:10:00" openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security>
<transport>
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address=""
binding="netTcpBinding" bindingConfiguration="tcpBinding"
contract="NameSpace.Server.IUpdateCustomers" name="tcpBinding" />
</client>
</system.serviceModel>