Относительный адрес конечной точки службы WCF, если базовый адрес уже указан - PullRequest
1 голос
/ 07 декабря 2011

Я тоже изучаю WCF, я новичок в Web Services и у меня очень простой вопрос.Пожалуйста, побалуйте меня!Пример в книге, которую я использую (Learning WCF), создал экземпляр ServiceHost, указывающий базовый адрес для службы (новый Uri ("http://localhost:8000/HelloIndigo)),, который, как я полагаю, является местоположением библиотеки классов, реализующей службу. Затем вызываетсяAddServiceEndpoint () выполняется с последним аргументом, относительным адресом, заданным как «HelloIndigoService». Является ли последний не чем иным, как именем класса (который можно найти в библиотеке), который фактически реализует контракт на обслуживание ? (У рассматриваемого класса есть это имя.) И все же этот аргумент называется «адрес», который сильно смущает меня. Пожалуйста, помогите.

1 Ответ

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

Если вы хостинг, вы можете выбрать:

  • полные, явные адреса конечных точек в ваших конечных точках, например

    http://yourServer:8888/YourService/SomeMethodName
    

    Итак, ваша конечная точка определяет полный HTTP-адрес

OR:

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

Таким образом, в вашем случае базовый адрес равен http://localhost:8000/HelloIndigo, поэтому все конечные точки службы будут «под» этим адресом.

Конечная точка определяет относительный адрес из HelloIndigoService, поэтому эти два соединяются, и полный адрес в конце будет:

  http://localhost:8000/HelloIndigo/HelloIndigoService

Работает только для , только для хостинга (если у вас есть хост-приложение, которое создает класс ServiceHost и открывает его для использования).

Когда вы используете IIS для размещения своей службы, тогда базовый адрес не используется / не интерпретируется - вместо этого виртуальный каталог (в IIS), в котором существует ваш файл *.svc, определяет адрес конечной точки вашей службы.

...