【发布时间】:2018-11-25 04:06:24
【问题描述】:
我们在 IIS(SMSvcHost.exe Event Log ID 8 problem)上托管 WCF 时遇到了一些问题。
IIS 设置如下:
- 一个 IIS 站点,站点绑定 net.tcp(绑定信息 808:*)
- 有少量应用程序
- 每个应用程序都运行自己的应用程序池
- 每个应用程序托管一个 net.tcp WCF 服务
在web.config 文件中,所有的net.tcp 绑定都有portSharingEnabled="true"。
问题:
- 如果我更改为
portSharingEnabled="false",我怀疑设置将停止工作?真的? (我的推理是,多个工作进程无法在不共享端口的情况下处理同一个端口) - 如果是这样,是否有让所有应用程序在同一个应用程序池上运行的解决方法?
- 或者在 IIS 中托管 net.tcp 是否需要端口共享?
现在我当然可以尝试一下,但我目前只有一个生产服务器来测试它,并想先做一些研究。
【问题讨论】:
-
为什么你认为端口共享和应用程序池有某种联系?
-
来自问题:“我的理由是,多个工作进程无法在没有端口共享的情况下处理同一个端口。”多个工作进程来自每个应用程序池的一个应用程序。
-
来自文档 (docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/…):“如果不允许端口共享并且另一个应用程序已经在使用端口 808,则此服务在打开时会抛出 AddressAlreadyInUseException。”