Несколько конечных точек под IIS - PullRequest
4 голосов
/ 25 июля 2009

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

Это мое понимание:

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

Мой виртуальный каталог: http://localhost/WcfCert/

<services>
  <service name="WcfCertServer.Service1" behaviorConfiguration="WcfCertServer.Service1Behavior">
    <endpoint address="" binding="wsHttpBinding" contract="WcfCertServer.IService1"/>
    <endpoint address="test" binding="wsHttpBinding" contract="WcfCertServer.IService1"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>

Я могу вызвать службу, используя http://localhost/wcfcert/service1.svc

, но http://localhost/wcfcert/test/service1.svc/test ничего не возвращает в IEили клиентское приложение

что мне здесь не хватает?

Редактировать:

Итак, я провел дополнительное тестирование, и вот что я обнаружил.

Если я запусту WcfTestClient.exe и добавлю http://localhost:1523/Service1.svc или http://localhost:1523/Service1.svc/mex, добавятся обе конечные точки под этим адресом. так вот мой вопрос не должен http://localhost:1523/Service1.svc представлять только первую конечную точку? почему при добавлении этого адреса появляются обе конечные точки?

, но если я пытаюсь добавить http://localhost:1523/Service1.svc/test, я получаю

Ошибка: невозможно получить метаданные из http://localhost:1523/Service1.svc/testЕсли это служба Windows (R) Communication Foundation, к которой у вас есть доступ, убедитесь, что вы включили публикацию метаданных по указанному адресу. Для получения справки о включении публикации метаданных см. Документацию MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI ошибки Exchange: http://localhost:1523/Service1.svc/test Метаданные содержат ссылку, которая не может быть решена: 'http://localhost:1523/Service1.svc/test'. Sendera:BadContextToken Сообщениене может быть обработано. Это наиболее вероятно, потому что действие 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get' является неправильным, или потому что сообщение содержит недопустимый или устаревший токен контекста безопасности или из-за несоответствия между привязками. Маркер контекста безопасности будет недействительным, если служба прервет канал из-за неактивности. Чтобы предотвратить прерывание бездействующими сеансами службы преждевременно, увеличьте тайм-аут приема для привязки конечной точки службы. HETTP GET Ошибка URI: http://localhost:1523/Service1.svc/test Произошла ошибка при загрузке 'http://localhost:1523/Service1.svc/test'. Запрос не выполнен с состоянием HTTP 400:Неверный запрос.

Ответы [ 2 ]

2 голосов
/ 25 июля 2009

На самом деле это будет:

http://localhost/wcfcert/service1.svc/test

Если вы хотите, чтобы URL был 'http://localhost/wcfcert/test/service1.svc',, вам нужно будет указать полный URL в атрибуте адреса.

0 голосов
/ 07 декабря 2013

Недавно я столкнулся с подобной проблемой, и я считаю, что причина в том, что WcfTestClient требует, чтобы конечная точка mex запрашивала метаданные для службы, которую она тестирует.

Когда вы добавляете адрес службы "http://localhost:1523/Service1.svc"к WcfTestClient он фактически запрашивает конечную точку "http://localhost:1523/Service1.svc/mex" для получения описания службы.

Отображается ошибка «Не удается получить метаданные из "http://localhost:1523/Service1.svc/test", поскольку WcfTestClient ищет конечную точку« / test / mex »получить метаданные для службы по адресу "/test".

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

<endpoint address="/test/mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

Это решение, которое сработало для меня.

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