我使用 http 和 net.tcp 绑定在 Windows Server 2008 上的 IIS 7/WAS 中托管 WCF 服务。
大多数情况下,我可以使用 http 和 net.tcp 调用服务而不会出现问题,但偶尔服务的应用程序池会意外关闭。发生这种情况时,WAS 会将以下条目写入事件日志:
应用程序池“MyServices”的工作进程在尝试从文件“\?\C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CONFIG\web.config”读取配置数据时遇到错误,行号“ 0'。数据字段包含错误代码。(数据:00000008)
为应用程序池“MyServices”提供服务的进程报告在启动期间尝试读取配置失败。进程 ID 为“18196”。请检查应用程序事件日志以获取工作进程记录的有关特定错误的更多事件消息。数据字段包含错误号。(数据:80004005)
服务应用程序池“MyServices”的工作进程“18468”中协议“net.tcp”的侦听器通道报告了侦听器通道故障。数据字段包含错误号。(数据:80004005)
由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池“MyServices”被自动禁用。
我已确认应用程序池配置为使用 .NET v4.0,集成模式,禁用 32 位应用程序。这些服务不使用任何 32 位或非托管组件。
导致关机的调用是 net.tcp 调用,一个应用程序日志条目提到“协议'net.tcp'的侦听器通道”,net.tcp 比 http 少得多(我没有找到任何相关的谷歌搜索任何应用程序日志条目)。我不禁认为问题与net.tcp、端口共享等有关。我只是不知道问题可能是什么。
有没有人遇到过这个?除了简单地禁用 net.tcp 和专门使用 http 之外,是否有人对如何解决问题有任何想法?