Совместное использование порта WCF net.tcp в IIS 7 / WAS - PullRequest
3 голосов
/ 16 декабря 2011

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

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

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

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

0 голосов
/ 17 декабря 2011

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

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

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

...