使用两个不同的端点绑定连接到单个WCF服务

时间:2011-07-01 13:09:06

标签: wcf wcf-binding

我是WCF的新手,(我希望)我有一个“noob”问题。我搜索了网站,但没有找到我正在寻找的答案。如果这已经得到回答我很抱歉,我很抱歉。

我使用 ChannelFactory 以编程方式连接到我的服务。我遇到的问题是客户端无法连接到我的第一个服务端点,除非我注释掉第二个服务端点(MSMQ一个)。希望这会有所帮助。

合同不同,我在客户端指定了正确的绑定(分别是WSDualHttpBinding和NetMsmqBinding)。

如果有办法解决这个问题,或者需要更多信息,请告诉我。

我很感激帮助。

泰勒

<services>          
   <service behaviorConfiguration="DefaultBehavior" name="[intentionally removed]"> 
       <endpoint 
           address="[intentionally removed]" 
           behaviorConfiguration="DefaultEndpointBehavior"
           binding="wsDualHttpBinding" 
           bindingConfiguration="DualBinding"
           name="WrapperEndpoint"
           contract="[intentionally removed]" 
       />
       <endpoint 
           address="[intentionally removed]"
           behaviorConfiguration="DefaultEndpointBehavior"
           binding="netMsmqBinding"
           bindingConfiguration="MsmqBinding"
           name="MsmqEndpoint"      
           contract="[intentionally removed]"
       />
    </service>
</services>

1 个答案:

答案 0 :(得分:0)

此主题可能相关:http://social.msdn.microsoft.com/Forums/is/wcf/thread/643371b4-00a7-472b-8bea-3055f2eb90ed

我认为你不能拥有2个不同合同的单一服务。我认为当你有两个端点时,WCF只是无法正常启动,但当你注释掉1个端点时,它可以正常工作,因为所有端点共享相同的合同。

WCF也将尝试根据合同为服务(而不是每个端点)定义WSDL,但如果服务有超过1个合同,它将不知道该怎么做。

正确的做法是将其拆分为2个服务。


编辑:

另一方面,this article表示拥有多个具有不同合同的端点的服务工作得很好,所以也许我错了。

嗯....