wcftestclient - могу ли я подключиться к определенной конечной точке? - PullRequest
4 голосов
/ 12 января 2012

Это должен быть простой вопрос.

Я не могу подключиться к определенной конечной точке с помощью инструмента WCFTestClient. У меня есть сервисный конфиг. как это:

<service name="CO.Services.SvcTest">
        <endpoint address="ep1" binding="basicHttpBinding" bindingConfiguration=""
          bindingNamespace="http://api.CO.com/Services/Tester/ep1"
          contract="CO.Services.ISvcTest" />
        <endpoint address="ep2" binding="basicHttpBinding" bindingConfiguration=""
          bindingNamespace="http://api.CO.com/Services/Tester/ep2"
          contract="CO.Services.ISvcTest_v2" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
          name="" contract="IMetadataExchange" />
      </service>

Если я передаю 'http://localhost:2659/Tester.svc/ep1' или' http://localhost:2659/Tester.svc/ep2', я получаю "Невозможно получить метаданные из ...", но если я передаю "http://localhost:2659/Tester.svc, это работает и показывает мне обе конечные точки .

Кто-нибудь знает, что мне не хватает?

РЕДАКТИРОВАТЬ1 : это вообще возможно?

1 Ответ

3 голосов
/ 12 января 2012

Это правильное поведение .

В WCF метаданные службы по умолчанию обслуживаются по базовому адресу службы.

Если вы размещаете свою службу впользовательский процесс, вы можете настроить URL базового адреса или даже добавить новые, используя baseAddresses раздел конфигурации .Если вы размещаете службу в IIS, что, как вам кажется, то базовым адресом всегда является URL-адрес файла .svc.

EDIT: Если вы хотите дваполностью разделив конечные точки, вам придется создать две реализации сервиса , по одной для каждого контракта, и сконфигурировать их с различными элементами в вашем файле конфигурации.Пока конечные точки являются частью одной и той же службы, вы сможете получать метаданные только с базового адреса службы, который в вашем случае является URL-адресом файла .svc.

...