WCF net.tcp 绑定:托管多个服务是否需要端口共享?

WCF net.tcp binding: Is port sharing required to host multiple services?

我们 运行 在 IIS 上托管 WCF 时遇到了一些问题(SMSvcHost.exe Event Log ID 8 problem)。

IIS设置如下:

web.config 文件中,所有 net.tcp 绑定都有 portSharingEnabled="true".

问题:

现在我当然可以尝试一下,但我目前只有一台生产服务器可以测试它,想先做一些研究。

您问题的答案:

  • 是的,它会像您预期的那样停止工作。你的推理是正确的。
  • 使用 portSharingEnabled="false",您可以在一个站点下(因此在同一个池中)拥有多个应用程序。您可以共享该端口,您将拥有与现有地址不同的地址。它会工作得很好:
    • net.tcp://example.com:808/FirstApp/Service.svc
    • net.tcp://example.com:808/SecondApp/Service.svc
    • net.tcp://example.com:808/ThirdApp/Service.svc
  • 不需要共享端口。但是在这种情况下你不能共享端口号。

您可以尝试迁移您的一个应用程序,看看它是如何工作的。将一个绑定添加到 IIS 站点,将具有新端口的第二个端点添加到 web.config 并更新客户端以查看其工作原理。此更新还需要重新配置所有客户端应用程序,因为它们的服务器将位于不同的端口上。