Я новичок в программировании wcf и работаю над небольшим проектом, и у меня возникают проблемы с общим доступом к порту net.tcp. Я использую .net Framework 4 и IIS 7.
У меня есть две службы wcf (serviceA и serviceB), размещенные на нашем сервере на отдельных веб-сайтах IIS. Каждый веб-сайт имеет свой собственный файл .svc, web.config и bin. Если у меня есть все эти сервисы на разных портах net.tcp, то проблем нет, и я могу добавить ссылку на сервис для каждого из них из visual studio на моем компьютере. Службы работают нормально.
Однако вскоре мы начнем проект с большим количеством сервисов, и мы хотим избежать необходимости открывать порт tcp для каждого из них, поэтому я пытался получить serviceA и serviceB для совместного использования порта. Если я настрою их на один и тот же порт, то получу доступ к первой добавленной услуге, но когда при попытке доступа ко второй услуге, добавленной к тому же порту, я получу следующую ошибку:
Метаданные содержат ссылку, которая не может быть разрешена:
'Net.tcp: //myserver/serviceB.svc. Разъем подключения был прерван. это
может быть вызвано ошибкой обработки вашего сообщения или получения
превышен тайм-аут удаленного хоста или базовой сети
вопрос ресурса. Тайм-аут локального сокета был **.
существующее соединение было принудительно закрыто удаленным хостом, если
услуга определена в текущем решении, попробуйте создать решение
и снова добавляем сервисную ссылку.
Я не могу понять, что происходит не так. Я провел большой поиск по этой теме и убедился, что запущены следующие службы:
Служба активации процессов Windows
Net.Tcp Port Sharing Service
Адаптер прослушивателя Net.Tcp
Кроме того, net.tcp является включенным протоколом в дополнительных настройках веб-сайта. На данный момент я думаю, что это может быть связано с тем, как я определил привязки net.tcp в диспетчере IIS. Оба моих сайта, на которых работают независимые сервисы, имеют следующее: 808: * (net.tcp) это правильно?
Как я уже говорил ранее, службы tcp работают нормально, если настроены на двух отдельных портах, поэтому проблема должна быть связана с совместным использованием портов. Очень благодарен за любой совет