Ссылки службы WCF - PullRequest
       10

Ссылки службы WCF

4 голосов
/ 18 декабря 2009

Итак, я новичок в WCF ...

Я создал свой ServiceLibrary и проект веб-сайта, который использовал ServiceLibrary. Я могу получить доступ к службе, создав прокси-класс из WSDL , который был сгенерирован с помощью svcutil.exe, а затем использовал этот класс для доступа к методам в моей службе. Все это было хорошо на моей локальной машине.

Затем я переместил службу на свой тестовый сервер разработки (не в домене, поэтому я получаю доступ через IP-адрес) и добавил сайт в IIS . Мне удалось получить доступ к службе через //ip/ServiceSite/Service.svc и WSDL через //ip/ServiceSite/Service.svc?wsdl.

.

Однако при попытке использовать этот сервис я получил сообщение об ошибке, что ссылки неверны. Когда я смотрю на //ip/ServiceSite/Service.svc, ссылка, предоставленная для генерации прокси-класса, содержит имя компьютера сервера в адресе, а когда я смотрю на WSDL, ссылки на схемы также содержат машину название в URL. К этому имени машины нельзя получить доступ по сети, поскольку оно не находится в домене.

Есть ли способ, чтобы вместо имени машины для сервера, помещенного в эти ссылки, он использовал IP-адрес? Или есть какие-то другие решения для доступа к услуге по IP-адресу?

Ответы [ 3 ]

10 голосов
/ 10 января 2013

Put

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

перед закрытием тега system.serviceModel. Это должно закончиться так:

<system.serviceModel > 
       .
       .
       .
   <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel >
2 голосов
/ 08 января 2010

Взгляните на библиотеку WCFExtras . В частности, раздел «Переопределить URL-адрес расположения SOAP». Краткий ответ: вам нужно пользовательское поведение конечной точки, обеспечиваемое реализацией IWsdlExportExtension.ExportEndpoint.

1 голос
/ 21 декабря 2009

Я думаю, что, возможно, нашел решение, которое должно было изменить привязку сайта IIS к IP-адресу. Я до сих пор не понимаю, почему это не может быть настройка в файле .config.

Вот ссылка на решение, которое я нашел (http://blogs.msdn.com/wenlong/archive/2007/08/02/how-to-change-hostname-in-wsdl-of-an-iis-hosted-service.aspx).

Вот ссылка на мой пост о поиске решения ( WCF (служба размещения в IIS) - имя машины автоматически выбирается WCF, а не IP? ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...