【问题标题】:how do I run multiple WCF services on one port? [duplicate]如何在一个端口上运行多个 WCF 服务? [复制]
【发布时间】:2011-07-25 19:25:27
【问题描述】:

可能重复:
Hosting Multiple TCP WCF service Endpoints on single Port

我有 4 个服务从一个 WCF 服务应用程序运行,如果使用 4 个单独的端口并在我的本地计算机上运行,​​并且托管在控制台应用程序中,这一切都很好。这对开发来说很好,但现在我想将它移到 Intranet 上的 Server 2008 机器上,而 IT 男孩们对于在该机器上打开大量端口并不满意。

我知道我可以在同一个端口上运行多个服务,但我似乎找不到任何告诉我如何操作的信息。大多数情况下,第一个服务启动,然后第二个服务无法启动。

谁能给我指出一个解释如何做到这一点的博客或文章?

我还需要弄清楚如何在 WAS 中托管服务,但这可能是一个单独的问题。我正在使用 TCP 协议,如果这有什么不同...

谢谢,戴夫

【问题讨论】:

  • 你是对的,它是重复的。昨天我的搜索词不知何故没有找到那个,我很抱歉......

标签: c# windows-server-2008-r2


【解决方案1】:

这看起来可以为您解决问题。

http://blogs.msdn.com/b/dkaufman/archive/2008/06/13/hosting-multiple-service-implementation-on-the-same-port-with-wcf.aspx

这表明您需要正确设置服务行为和端点:

// Add behavior for Services - enable WSDL access
ServiceMetadataBehavior serviceABehavior = new ServiceMetadataBehavior();
serviceABehavior.HttpGetEnabled = true;
serviceABehavior.HttpGetUrl = new Uri("http://localhost:8080/ServiceA");
serviceAHost.Description.Behaviors.Add(serviceABehavior);

ServiceMetadataBehavior serviceBBehavior = new ServiceMetadataBehavior();
serviceBBehavior.HttpGetEnabled = true;
serviceBBehavior.HttpGetUrl = new Uri("http://localhost:8080/ServiceB");
serviceBHost.Description.Behaviors.Add(serviceBBehavior);

// Create basicHttpBinding endpoint at http://localhost:8080/ServiceA/  
serviceAHost.AddServiceEndpoint(serviceAContractType, new BasicHttpBinding(), 
"http://localhost:8080/ServiceA");
// Create basicHttpBinding endpoint at http://localhost:8080/ServiceB/  
serviceBHost.AddServiceEndpoint(serviceBContractType, new BasicHttpBinding(), 
"http://localhost:8080/ServiceB");

或 Net.TCP 端口共享。

http://msdn.microsoft.com/en-us/library/ms734772.aspx

将许多不同 HTTP 应用程序的流量多路复用到单个 TCP 端口的 HTTP.SYS 模型已成为 Windows 平台上的标准。这为防火墙管理员提供了一个公共控制点,同时允许应用程序开发人员最大限度地降低构建可利用网络的新应用程序的部署成本。

【讨论】:

  • 我昨天早些时候找到了引用的博客文章,但希望有一个更优雅的解决方案。作者在他的帖子中承认这不是理想的解决方案,因为它使用硬编码的 URI 而不是使用配置文件等。端口共享方法似乎是一个更好的解决方案......
  • 第一个链接坏了。
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2013-10-18
  • 2019-06-23
相关资源
最近更新 更多