Совместное использование порта 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-порт для каждого из них, поэтому я пытался получить сервис A и сервис B для общего доступа к порту. Если я настрою их на один и тот же порт, я смогу получить доступ к первой добавленной службе, но когда я попытаюсь получить доступ ко второй службе, добавленной к тому же порту, я получаю следующую ошибку:

Метаданные содержат неразрешимую ссылку: «net.tcp://myserver/serviceB.svc». Соединение сокета было прервано. Это может быть вызвано ошибкой обработки вашего сообщения, превышением тайм-аута приема удаленным хостом или проблемой с базовыми сетевыми ресурсами. Тайм-аут локального сокета был **. Существующее соединение было принудительно закрыто удаленным узлом. Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.

Я не могу понять, что происходит не так. Я много искал по этому вопросу и убедился, что работают следующие службы:

Служба активации процессов Windows Служба совместного использования портов Net.Tcp Адаптер прослушивателя Net.Tcp

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

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


person gib_stu01    schedule 16.12.2011    source источник


Ответы (2)


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

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

person gib_stu01    schedule 20.12.2011

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

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

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

person Tabish Sarwar    schedule 16.12.2011