我在Windows 08的IIS7上托管一个WCF服务,sp2。该服务作为自己的网站托管,并通过NET.TCP端点公开。在发出重新启动/iis重置命令之前,该服务运行良好。
重新启动或iis重置后,当我进行任何服务调用时,都会收到以下错误:'System.ServiceModel.EndpointNotFoundException:无法发送消息,因为端点地址‘net.tcp:// make / service _name.svc’的服务对于地址的协议不可用。‘
服务器的事件日志显示以下错误:“在试图读取和实例化配置的ProcessHandlerType时发生了错误。异常: System.ArgumentException消息:未知协议ID 'NET.TCP‘。System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel(String protocolId,IListenerChannelCallback listenerChannelCallback)‘
问题:我如何解决这个问题?为什么NET.TCP协议在iis重置后是禁用的?是虫子吗?我是不是漏掉了什么配置?
IIS安装详细信息:-服务器08和08 R2 -绑定: http,NET.TCP (808:*) - EnabledProtols: http,NET.TCP。-站点appPool的标识设置为特定用户。
这里提供的示例代码:http://drop.io/wcfTcpSampleService
谢谢
发布于 2010-06-29 19:46:15
解决了。问题是对案件敏感。在web应用程序的AdvancedSettings中,EnabledProtocols字段必须是小写的,即'net.tcp‘(我刚刚从MS支持处了解到这一点)。
我(愚蠢地)认为'NET.TCP‘应该是大写,因为EnabledProtocols字段的描述("...add这些值,例如NET.TCP.“)。
奇怪的,未知的问题是为什么它将第一次与'NET.TCP‘一起工作,但这是另一个问题。
谢谢你帮助每个人。
发布于 2010-06-28 18:01:25
NET.TCP和HTTP协议可以使用不同的端口吗?
更新
在我的电脑上,一切正常工作,我已经尝试重新启动和iis重置。我已将您的项目(包括二进制文件(使用的2010 Express) )和IIS设置的屏幕截图上载在同一位置。应用程序池被设置为.NET 4.0集成。
iis7 http://www.freeimagehosting.net/uploads/1a727d66ce.png
发布于 2010-06-25 22:59:09
你真的需要做一个完整的IISRESET吗?我认为,当需要一个网络托管的应用程序完全重新启动时,“现代”推荐的方法是将应用程序池循环如下:iisapp /a <App_Pool_ID> /r (Windows2003)或appcmd recycle apppool /apppool.name:<App_Pool_Name> (Windows2008)。
https://stackoverflow.com/questions/3049811
复制相似问题