wcf - restart/iisreset 禁用 NET.TCP 协议(protocol)?

标签 wcf iis-7 tcp was

我在 Windows Server 08 sp2 上的 IIS7 中托管 WCF 服务。该服务托管为自己的网站,并通过 NET.TCP 端点公开。在发出重新启动/iisreset 命令之前,该服务工作正常。

重启或 iisreset 后,当我进行任何服务调用时,我收到以下错误: 'System.ServiceModel.EndpointNotFoundException: 无法发送消息,因为端点地址 'net.tcp://[website]/[service_name].svc' 的服务对于该地址的协议(protocol)不可用..'

服务器的事件日志显示以下错误: '尝试读取和实例化配置的 ProcessHandlerType 时发生错误。 异常:System.ArgumentException 消息:未知协议(protocol) ID“NET.TCP”。 StackTrace: 在 System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel(String protocolId, IListenerChannelCallback listenerChannelCallback) '

问题: 我该如何解决?为什么在 iisreset 后 NET.TCP 协议(protocol)被禁用?这是一个错误吗?我是否缺少某些配置?

IIS 设置细节: - 服务器 08 和 08 R2 - 绑定(bind):http、NET.TCP (808:*) - EnabledProtols:http、NET.TCP。 - 站点的 appPool 的身份设置为特定用户。

此处提供示例代码:http://drop.io/wcfTcpSampleService

谢谢

最佳答案

已解决。问题是区分大小写。在 Web 应用程序的 AdvancedSettings 中,EnabledProtocols 字段必须是小写的,即“net.tcp”(我刚刚从 MS 支持那里了解到这一点)。

我假设(愚蠢地)'NET.TCP' 应该是大写的,因为 EnabledProtocols 字段的描述(“...添加这些值,例如 NET.TCP...”)。

奇怪的、未知的问题是为什么它会第一次与“NET.TCP”一起工作,但这是另一个问题。

感谢大家的帮助。

关于wcf - restart/iisreset 禁用 NET.TCP 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049811/

相关文章:

c++ - 如何检查 TCP 端口是否已被监听?

c# - Azure 工作进程间通信

c# - XDocument.ToString() 抛出 "' ', hexadecimal value 0x13, is an invalid character."异常

session - 带有流和 session 的 NetTcpBinding

c# - 无法写入输出文件 'c:\Windows\Temp\HibernatingRhinos.Profiler.Appender.NHibernate3Logger.dll' -- 'Access is denied. '

c# - 防止在 IIS 中加载特定的 dll

c# - IIS 7 ERR_CONNECTION_TIMED_OUT 仅适用于公共(public) IP

mysql - 当我在 Commend 提示符下输入 NETSTAT -NA 时,Windows 中 TIME_WAIT 状态的含义是什么?

c++ - boost::asio::tcp 套接字上的双向通信

WCF 配置元素 : baseAddressPrefixFilters