WCF с несколькими конечными точками, обращающимися к WSDL? - PullRequest
0 голосов
/ 20 мая 2009

Должен ли WSDl быть доступен только через ".svc? Wsdl"? У меня есть служба, которая имеет несколько конечных точек. Например (в файле web.config):

<services>
  <service behaviorConfiguration="MyServiceTypeBehavior" name="WcfService1.Service">
    <endpoint binding="wsHttpBinding" bindingConfiguration="ws1"
     name="ws1" contract="WcfService1.IMyService" />
    <endpoint address="http://www.blah.com/Service.svc/Basic" binding="basicHttpBinding"
     bindingConfiguration="Basic" name="Basic" contract="WcfService1.IMyService" />
    <endpoint address="http://localhost:5606/Service.svc/Secured"
     binding="wsHttpBinding" bindingConfiguration="WsSecured" name="WsSecured"
     contract="WcfService1.IMyService" />
  </service>
</services>

Если я перехожу к: http://www.blah.com/Service.svc/Basic, я получаю ошибку 404 страницы. Когда я перехожу на http://www.blah.com/Service.svc?wsdl, я вижу свои wsdl и мои 3 конечные точки внизу страницы. Могу ли я получить доступ к другим конечным точкам по их адресу? У меня есть клиент, который использует Axis2 для доступа к нашим услугам, и я хотел бы использовать несколько конечных точек для разных клиентов. Я знаю, что могу добавить это к поведению serivce:

<behavior name="MyServiceTypeBehavior">
  <serviceMetadata httpGetEnabled="true" httpGetUrl="Basic" />
  <serviceDebug includeExceptionDetailInFaults="true" />
  <dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>

Но мне нужно было бы создать служебную запись для каждой конечной точки, верно? Должен ли я вообще беспокоиться о возможности доступа к конечным точкам через URL?

Спасибо

Daniel

1 Ответ

4 голосов
/ 20 мая 2009

Я думаю, вы, возможно, слишком обдумываете это. WSDL будет указывать все конечные точки и их политики. Клиенты могут указать, какую конечную точку использовать для связи.

Вам не нужно переходить к URL-адресу конечной точки.

...