IIS中的NetTcpBinding:未知的协议ID' net.tcp'

时间:2014-08-13 14:29:01

标签: .net wcf iis windows-server-2012 net.tcp

我试图为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应用程序池上运行。

1 个答案:

答案 0 :(得分:1)

为了在IIS中使用netTcpBinding托管WCF服务,需要执行以下额外配置步骤:

  • 启用非HTTP激活
  • 使用“net.tcp”作为启用协议配置IIS
  • 指定利用“net.tcp”绑定类型
  • 的网站绑定
  • 将基地址添加到web.config服务配置

以下文章提供了其他详细信息 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