2011-12-16 3 views
3

Я новичок в программировании wcf, и я работал над небольшим проектом, и у меня возникают проблемы с совместным использованием портов net.tcp. Я использую .net framework 4 и iis 7.Обмен WCF net.tcp на IIS 7/WAS

У меня есть две службы wcf (serviceA и serviceB), размещенные на нашем сервере на отдельных сайтах в IIS. Каждый веб-сайт имеет свой собственный .svc-файл, web.config и bin. Если у меня есть каждая из этих служб на разных портах net.tcp, тогда нет никаких проблем, и я могу добавить ссылку на службу к каждому из них из visual studio на моем компьютере. Услуги работают нормально.

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

Metadata contains a reference that cannot be resolved: 'net.tcp://myserver/serviceB.svc'. The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was **. An existing connection was forcibly closed by the remote host If the service is defined in the current solution, try building the solution and adding the service reference again.

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

Служба активации процессов Windows Net.Tcp Port Sharing Service Net.Tcp Listener Adapter

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

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

ответ

3

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

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