WCF后续之旅(14):TCP端口共享
在下面的例子中,我通过两个不同的控制台应用程序对两个服务,Service1和Service2进行寄宿,两个服务的终结点地址共享相同的端口:。
1: using(ServiceHost serviceHost = new ServiceHost(typeof(Service1)))
2: {
3: serviceHost.AddServiceEndpoint(typeof(IService1), new NetTcpBinding(), "net.tcp://127.0.0.1:9999/service1");
4: serviceHost.Open();
5: Console.Read();
6: }
1: using(ServiceHost serviceHost = new ServiceHost(typeof(Service2)))
2: {
3: serviceHost.AddServiceEndpoint(typeof(IService2), new NetTcpBinding(), "net.tcp://127.0.0.1:9999/service2");
4: serviceHost.Open();
5: Console.Read();
6: }
二、Net.TCP Port Sharing Service
三 、基于TCP端口共享的编程
注:通过“开始”-〉“控制面板”-〉“管理工具”-〉服务,打开如下图所示的“服务对话框”,然后定位到Net.TCP Port Sharing Service。
1: public class NetTcpBinding : Binding, IBindingRuntimePreferences
2: {
3: // ... ...
4: public bool PortSharingEnabled { get; set; }
5: }
1: using(ServiceHost serviceHost = new ServiceHost(typeof(Service1)))
2: {
3: NetTcpBinding binding = new NetTcpBinding();
4: binding.PortSharingEnabled = true;
5: serviceHost.AddServiceEndpoint(typeof(IService1),binding,"net.tcp://127.0.0.1:9999/service1");
6: serviceHost.Open();
7: Console.Read();
8: }
1: <configuration>
2: <system.serviceModel>
3: <bindings>
4: <netTcpBinding>
5: <binding name="portSharingBinding" portSharingEnabled="true" />
6: </netTcpBinding>
7: </bindings>
8: <services>
9: <service name="Artech.WcfServices.Services.CalculateService">
10: <endpoint binding="netTcpBinding" bindingConfiguration="portSharingBinding"
11: contract="Artech.WcfServices.Contracts.ICalculate" />
12: </service>
13: </services>
14: </system.serviceModel>
15: </configuration>
WCF后续之旅:
WCF后续之旅(1): WCF是如何通过Binding进行通信的
WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel
WCF后续之旅(3): WCF Service Mode Layer 的中枢—Dispatcher
WCF后续之旅(4):WCF Extension Point 概览
WCF后续之旅(5): 通过WCF Extension实现Localization
WCF后续之旅(6): 通过WCF Extension实现Context信息的传递
WCF后续之旅(7):通过WCF Extension实现和Enterprise Library Unity Container的集成
WCF后续之旅(8):通过WCF Extension 实现与MS Enterprise Library Policy Injection Application Block 的集成
WCF后续之旅(9):通过WCF的双向通信实现Session管理[Part I]
WCF后续之旅(9): 通过WCF双向通信实现Session管理[Part II]
WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance
WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
WCF后续之旅(12): 线程关联性(Thread Affinity)对WCF并发访问的影响
WCF后续之旅(13): 创建一个简单的WCF SOAP Message拦截、转发工具[上篇]
WCF后续之旅(13):创建一个简单的SOAP Message拦截、转发工具[下篇]
WCF后续之旅(14):TCP端口共享
WCF后续之旅(15): 逻辑地址和物理地址
WCF后续之旅(16): 消息是如何分发到Endpoint的--消息筛选(Message Filter)
WCF后续之旅(17):通过tcpTracer进行消息的路由
微信公众账号:大内老A
微博:www.weibo.com/artech
如果你想及时得到个人撰写文章以及着作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
最后更新:2017-10-30 16:34:35