Я пытаюсь разместить службу WCF с привязкой net.tcp на сайте IIS 7.5 в Windows 7, 64-разрядная версия. К сожалению, услуга недоступна. На самом деле, открытие соединения с TCP-портом с помощью telnet даже не удается.
Вот как выглядит мой раздел system.serviceModel web.config для сайта:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultServiceBehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="2000000" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="DefaultServiceBehavior"
name="FooService">
<endpoint binding="netTcpBinding" bindingConfiguration="service"
name="service" contract="IFoo" />
<endpoint binding="mexTcpBinding"
bindingConfiguration="DuplexBinding" contract="IFoo" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1:9000/service"/>
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="service" portSharingEnabled="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None"/>
</binding>
<binding name="DuplexBinding">
<reliableSession enabled="true"/>
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
В IIS Manager я создал сайт с пулом приложений, работающим под идентификатором NETWORK SERVICE, с v4.0 .NET Framework и интегрированным конвейером. Для сайта существует одна привязка с типом net.tcp
и «Информация о привязке», установленная на 9000:*
.
Под службами моего компьютера я запустил ранее остановленные службы «Net.Tcp Listener Adapter» и «Net.Tcp Port Sharing Service» и заставил их запускаться автоматически. Я также удостоверился, что установлена «Активация Windows HTTP Foundation без HTTP».
Что еще мне нужно сделать, чтобы заставить IIS / WCF / WAS / что-либо прослушивать порт 9000, чтобы моя служба могла быть активирована и вызвана?
Мой вопрос похож на Служба WCF хоста с привязкой net.tcp через IIS Manager 7.5 , но OP не был зарегистрирован, и на его вопрос не было ответа. Я открываю этот вопрос, чтобы я мог опубликовать свои собственные данные.
Обновление
Я нашел несколько дополнительных подсказок. Я решил добавить вторую привязку, чтобы я мог работать с привязками HTTP, пытаясь выяснить проблемы net.tcp. Теперь, когда я пытаюсь получить доступ к конечной точке HTTP, я получаю эту ошибку
Не удалось найти базовый адрес, который соответствует схеме net.tcp для конечной точки с привязкой NetTcpBinding. Схемы зарегистрированных базовых адресов: [http]
Я очень четко имею привязок для HTTP и net.tcp здесь:
<baseAddresses>
<add baseAddress="net.tcp://localhost:9000/"/>
<add baseAddress="http://localhost:8050/"/>
</baseAddresses>
Так что фраза «Схемы зарегистрированных базовых адресов» меня беспокоит; Что мне нужно сделать, чтобы мой сайт поддерживал схему net.tcp?