CSLA与WCF nettcpbinding

时间:2010-04-16 17:44:57

标签: wcf csla nettcpbinding

我正在使用CSLA.NET。它与wsHttpBinding非常吻合。现在,我有自己的Windows服务并搜索解决方案,我可以使用此Windows服务作为CSLA服务器并使用nettcpbinding。有人可以给我一个提示怎么回事?也许某人有一个样本我可以做到这一点。

谢谢!

最诚挚的问候,托马斯

1 个答案:

答案 0 :(得分:1)

基本上,你需要做两件事:

  • 更改服务器端配置以包含带有netTcpBinding的端点(这可以是现有wsHttpBinding端点的补充 - 没问题)

  • 将netTcpBinding添加到客户端的配置文件中,并在连接时选择该端点

你的服务器端配置应该有这样的东西:

<services> 
   <service name="YourService">
      <endpoint name="something"
                address=""
                binding="wsHttpBinding"
                contract="IYourService" />
   </service>
</services>

只需为netTcpBinding添加端点:

<services> 
   <service name="YourService">
      <endpoint name="something"
                address=""
                binding="wsHttpBinding"
                contract="IYourService" />
      <endpoint name="something"
                address="net.tcp://YourServer:7171/YourService"
                binding="netTcpBinding"
                contract="IYourService" />
   </service>
</services>

现在,如果您在IIS中托管,可能会遇到一些问题 - 您需要配置IIS7(Win2008或Win2008R2服务器),而在IIS6中,您将无法在IIS6中托管您的netTcp服务: - (

在客户端也是如此 - 为netTcp添加第二个端点:

<client>
    <endpoint name="something"
              address="http://YourServer/SomeVirtDir/YourServiceFile.svc"
              binding="wsHttpBinding"
              contract="IYourService" />
    <endpoint name="netTcpEndpoint"
              address="net.tcp://YourServer:7171/YourService"
              binding="netTcpBinding"
              contract="IYourService" />
</client>

现在,当您在代码中创建端点时,请使用命名端点:

YourServiceClient client = new YourServiceClient("netTcpEndpoint");

这应该是全部,真的(除非CSLA需要一些我不知道的额外内容......我知道“普通香草”WCF)