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

时间:2018-06-15 10:08:20

标签: .net wcf iis net.tcp

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

IIS设置如下:

  • 一个IIS站点,具有站点绑定net.tcp(绑定信息808:*)
  • 使用少数几个应用程序
  • 每个应用程序都运行自己的应用程序池
  • 托管一个net.tcp WCF服务的每个应用程序

$editedData个文件中,所有net.tcp绑定都有web.config

问题:

  • 如果我更改为portSharingEnabled="true",我怀疑设置会停止工作吗?真正? (我的理由是多个工作进程无法在没有端口共享的情况下处理相同的端口)
  • 如果是,是否允许所有应用程序在同一个应用程序池上运行?
  • 或者端口是否共享在IIS中托管net.tcp的要求?

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

1 个答案:

答案 0 :(得分:1)

回答您的问题:

  • 是的,它将停止工作,如您所愿。您的推论是正确的。
  • 您可以使用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添加具有新端口的第二个端点,并更新客户端以查看其工作方式。此更新还需要重新配置所有客户端应用程序,因为它们的服务器将位于不同的端口上。