我正在使用CSLA.NET。它与wsHttpBinding非常吻合。现在,我有自己的Windows服务并搜索解决方案,我可以使用此Windows服务作为CSLA服务器并使用nettcpbinding。有人可以给我一个提示怎么回事?也许某人有一个样本我可以做到这一点。
谢谢!
最诚挚的问候,托马斯
答案 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)