Вопрос об адресе хоста WCF - PullRequest
       7

Вопрос об адресе хоста WCF

0 голосов
/ 09 апреля 2010

когда я настраиваю службу wcf на веб-сервере, я задаю адрес конечной точки как

<endpoint address="http://www.mydomin.com/clientname/happy.svc" 
              binding="basicHttpBinding" 
              name="happysvcbasic" 
              contract="happysvc.Ihappysvc">

</endpoint>

но при вводе вышеуказанного адреса в браузере я получаю другое имя хоста, которое является именем внутреннего сервера, например,

Чтобы протестировать этот сервис, вам нужно будет создать клиента и использовать его для вызова сервиса. Это можно сделать с помощью инструмента svcutil.exe из командной строки со следующим синтаксисом:

svcutil.exe http://internalservername.domain/clientname/happy.svc?wsdl

Я пытался добавить тег host / baseaddress, но без разницы, что я пропустил? спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2010

Когда вы размещаете через IIS свой сервис в IIS, адрес всегда является относительным. Если вы хотите чего-то достичь с помощью своей конечной точки, удалите http://

   <endpoint address="clientname" 

И тогда ваша конечная точка будет http://localhost/virtualdirectory/happy.svc/clientname

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

См. или Это для получения дополнительной информации.

Если вы пытаетесь настроить другой DNS-адрес для своей службы, вам нужно изменить способ размещения вашего сайта и использовать заголовки хоста .

0 голосов
/ 09 апреля 2010

Когда вы размещаете службу WCF в IIS, вы не можете выбрать адрес, поэтому установка address= в вашем <endpoint> абсолютно бесполезна, как и установка базовых адресов.

При размещении в IIS единственное, что определяет ваш адрес службы WCF:

  • имя / IP-адрес компьютера сервера IIS плюс, возможно, номер порта
  • виртуальный каталог и, возможно, любые подкаталоги, в которых находится файл happy.svc
  • имя самого файла * .svc, включая расширение .svc

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

http://yourserver:80/VirtualDirectory/SubDirectory/happy.svc

Это все, что есть, и вы не можете это изменить (по крайней мере, сейчас, в WCF 3.5 - в WCF в .NET 4 может быть иначе).

Так что теперь: какой у вас вопрос, на самом деле?

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