我试图为WCF服务托管一个NetTcp端点,但似乎可以让它运行起来。每当我尝试向端点发送消息时,应用程序池崩溃,我在事件日志中收到以下错误:
尝试读取和实例化已配置的ProcessHandlerType时发生错误。
异常:System.ArgumentException
消息:未知的协议ID' net.tcp'。
StackTrace:在System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel(String protocolId,IListenerChannelCallback listenerChannelCallback)
我使用Windows Server 2012和IIS 8.应用程序池在.NET 2.0集成模式下运行。 Web应用程序将net.tcp作为已启用的协议,并且承载该应用程序的站点具有添加了绑定信息808:*的net.tcp绑定。为.NET Framework 3.5启用了功能Non-Http激活,并为.NET Framework 4.5启用了功能TCP激活。
起初,我无法让NetTcp端点工作,但在http://support.microsoft.com/kb/2803161的文章的帮助下,我设法至少获取了Mex的http端点。 (我使用了文章的方法1)。
有人可以解释可能的原因吗?非常感谢帮助!
更新:当我将应用程序池更改为.NET 4.0集成模式时,不幸的是,由于旧的代码库,这会带来其他复杂性。所以我仍然想让它在.NET 2.0应用程序池上运行。
答案 0 :(得分:1)
为了在IIS中使用netTcpBinding托管WCF服务,需要执行以下额外配置步骤:
以下文章提供了其他详细信息
NET TCP/HTTP WCF Hosted in IIS
http://blogs.msdn.com/b/james_osbornes_blog/archive/2010/12/07/hosting-in-iis-using-nettcpbinding.aspx
http://galratner.com/blogs/net/archive/2010/10/08/setting-up-a-nettcpbinding-enabled-wcf-service-in-iis-7.aspx