службы net.tcp WCF перемещены с локального хоста на IP-адрес на новом сайте, службы не загружаются

У меня есть веб-сайт с двумя службами WCF. Работал отлично, пока мне не понадобилось переместить их с «веб-сайта по умолчанию» в IIS7 на выделенный веб-сайт с новым IP-адресом. Теперь я получаю сообщение об ошибке:

"... не удалось загрузить, поскольку для этого контракта найдено более одной конфигурации конечной точки. Укажите предпочтительный раздел конфигурации конечной точки по имени"

ВСЕ, что я сделал, это изменил:

net.tcp://локальный/...

TO:

net.tcp://10.1.2.204/...

Я изменил каждое место в своих конфигах, которые когда-то использовали локальный хост, на указанный IP-адрес. Новый веб-сайт настроен точно так же с правильными привязками net.tcp и привязан к одному IP-адресу 10.1.2.204.

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

Мой новый веб-сайт называется «ядро», тогда как раньше я размещался на «веб-сайте по умолчанию». Я добавил новое полное доменное имя/общедоступный IP-адрес для маршрутизации на этот новый сайт (назад к упомянутому частному IP-адресу). Теперь мои услуги разорены.

Я знаю, что baseAddress игнорируется при использовании хостинга IIS/WAS, поэтому я не знаю, что еще проверить. В конфигах больше ничего не менял.

Что еще я могу предоставить, чтобы помочь устранить эту проблему?

--

Я также вижу это в средстве просмотра трассировки службы:

Имя действия Получение байтов при соединении «Прослушивание в сети.tcp://hole.myserver.com/…».

... но службы WCF фактически размещены на этом новом «основном» веб-сайте, который переводится на мой новый частный IP-адрес. Я изменил имена FQDN для примера. Чтобы было ясно:

Раньше у меня было 1 полное доменное имя на этом сервере, использующем веб-сайт по умолчанию.

Теперь я добавил к этому серверу второе полное доменное имя, новый веб-сайт, второй IP-адрес. Мне кажется, что прослушивание должно быть направлено на: net.tcp://core.myserver.com вместо net.tcp://hole.myserver.com. Предположим, имя сервера —hole.myserver.com, а мой новый веб-сайт — core.myserver.com на том же сервере.

Надеюсь, это не сбивает с толку, и вы можете понять это.

Я использую стандартный порт net.tcp 808 и привязку 808:*

--

Это первое исключение, которое я могу сказать:

Соединение сокета было прервано. Это может быть вызвано ошибкой обработки вашего сообщения, превышением тайм-аута приема удаленным хостом или проблемой с базовыми сетевыми ресурсами. Время ожидания локального сокета было «00:00:10».

--

Ни одна из этих комбинаций не активирует службу, и все они создают одно и то же исключение:

net.tcp://localhost net.tcp://localhost:808 net.tcp://10.1.2.204 net.tcp://10.1.2.204:808

даже используя другой порт, который я делал раньше без проблем:

net.tcp://локальный: 75 net.tcp://10.1.2.204:75

ничего из этого не работает. :(

Большое спасибо!


person Community    schedule 14.09.2011    source источник
comment
используются одни и те же двоичные файлы. тех не трогали.   -  person    schedule 15.09.2011
comment
Я понимаю, что это кажется довольно мелким и простым с точки зрения конфигурации, но я в тупике. Это действительно не имеет смысла для меня. Я понял, что не имеет значения, использует ли адрес net.tcp:// localhost или IP-адрес веб-сайта, поскольку мы взаимодействуем с выделенным TCP-портом, и только один сайт в настоящее время настроен для TCP на этом сервере. Что так сбивает с толку, так это то, что простое создание нового веб-сайта и двух моих приложений на сайте приводит к тому, что это происходит.   -  person    schedule 15.09.2011
comment
Единственное отличие от этого веб-сайта по сравнению с использованием веб-сайта по умолчанию заключается в том, что на веб-сайте по умолчанию было третье приложение для веб-сайта MVC, тогда как на моем новом веб-сайте core его нет, и он просто указывает корень веб-сайта на корень сайта MVC. Это работает нормально, как и ожидалось. Итак, я полностью сбит с толку, пока решение не кажется глупым.   -  person    schedule 15.09.2011
comment
Итак, я исправил эту проблему, но теперь мне нужно понять, почему. Я переместил свои службы WCF обратно на веб-сайт по умолчанию, добавил привязку net.tcp обратно к веб-сайту по умолчанию, удалил привязку net.tcp с основного веб-сайта, и теперь службы снова работают. Итак, мой вопрос: как правильно разместить службы WCF на альтернативном веб-сайте, кроме веб-сайта по умолчанию, где сайт по умолчанию не имеет привязки net.tcp, а службы WCF используют порт по умолчанию 808? Я опубликую другой вопрос или более внимательно поищу решение. Спасибо, что последовали за нами.   -  person    schedule 15.09.2011
comment
У меня возникают аналогичные проблемы, когда я не использую веб-сайт по умолчанию stackoverflow.com/questions/8548883/   -  person Rodney    schedule 20.12.2011
comment
Вы когда-нибудь догадывались об этом? Возможно, у меня такая же проблема: stackoverflow.com/questions/16628382/   -  person Niels Brinch    schedule 25.05.2013


Ответы (1)


Его права выдают. Щелкните правой кнопкой мыши новый веб-сайт --> затем Изменить разрешения. В окне свойств щелкните вкладку безопасность и нажмите кнопку Изменить. Затем Добавьте IIS_IUSRS и предоставьте разрешения Чтение и выполнение, Список содержимого папки, Чтение. Теперь iisreset и начните размещать и подключать net tcp на новом веб-сайте.

person Sen.R    schedule 25.07.2016