Совместное использование порта WCF net.tcp в IIS 7 / WAS

Я новичок в программировании 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. Адаптер прослушивателя Net.Tcp.

Кроме того, net.tcp является включенным протоколом в расширенных настройках веб-сайта. В настоящее время я считаю, что это может быть связано с тем, как я определил привязки net.tcp в диспетчере IIS. Оба моих сайта, на которых работают независимые сервисы, имеют следующее: 808:*(net.tcp) это правильно?

Как я уже говорил ранее, службы tcp работают нормально, если настроены на двух отдельных портах, поэтому проблема должна быть связана с совместным использованием портов. Очень благодарен за любой совет

2 ответа

Решение

ОК, я нашел проблему, которая у меня была. В IIS я настроил каждый сервис как свой собственный веб-сайт и пытался заставить эти разные веб-сайты делиться портами. Это не будет работать.

Однако я обнаружил, что если я настрою только один веб-сайт, а затем добавлю свои сервисы в качестве отдельных приложений под веб-сайтом, то совместное использование портов будет работать. Такой подход позволяет мне использовать несколько сервисов в качестве приложений на одном веб-сайте.

Проверь это. Это может быть полезно для вас.

http://himanshudesai.wordpress.com/2011/06/03/multiple-wcf-services-on-a-single-port/

Надеюсь это поможет.

Другие вопросы по тегам