WCF单一服务实现 - 多行为,有趣的WSDL

时间:2012-01-13 10:28:54

标签: wcf binding wsdl

我有一个简单的IIS托管服务,我需要通过没有限制的wsHttpBinding端点和带限制的basicHttpBinding端点来公开它。

我按如下方式配置我的服务:

<service name="Calculator">
    <endpoint address="http://localhost/WCFTwoEndpoints/Calculate.svc"
      binding="wsHttpBinding" bindingConfiguration="" name="Calculator"
      contract="WCFTwoEndpoints.ICalculate" />
  </service>
  <service name="ThrottledCalculator" behaviorConfiguration ="Throttled">
    <endpoint address="http://localhost/WCFTwoEndpoints/ThrottledCalculate.svc"
      binding="basicHttpBinding" bindingConfiguration="" name="ThrottledCalculator"
      contract="WCFTwoEndpoints.ICalculate" />
  </service>

这给了我两个服务端点,我可以单独浏览每个.svc并启动WSDL。问题是,在每种情况下,WSDL都将服务描述为使用basicHttp绑定,我原本期望对Calculate.svc进行wsHttp绑定。

我在下面贴了一段WSDL:

<wsdl:binding name="BasicHttpBinding_ICalculate" type="tns:ICalculate">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Addition">
<soap:operation soapAction="http://tempuri.org/ICalculate/Addition" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Calculate">
<wsdl:port name="BasicHttpBinding_ICalculate" binding="tns:BasicHttpBinding_ICalculate">
<soap:address location="http://rb-t510/WCFTwoEndpoints/ThrottledCalculate.svc"/>
</wsdl:port>
</wsdl:service>

我想我错过了一些明显的东西,但我无法发现它。有什么想法吗?

非常感谢

罗布。

0 个答案:

没有答案