具有多个端点的WCF访问WSDL?

时间:2009-05-19 20:17:43

标签: wcf .net-3.5

只能通过“.svc?wsdl”访问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的客户端来获取我们的服务,我想为不同的客户端使用多个端点。我知道我可以将其添加到服务行为中:

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

但是我必须为每个端点创建一个服务条目,对吧?我是否应该担心能够通过URL访问端点?

由于

丹尼尔

1 个答案:

答案 0 :(得分:4)

我想你可能会过度思考这个问题。 WSDL将指定所有端点及其策略。客户端可以指定用于通信的端点。

您无需导航到端点的URL。