为什么ServiceModel有时在Framework文件夹的Web.config中声明,有时不会?

时间:2012-01-13 06:37:01

标签: asp.net web-config

我们正在部署一个ASP.NET 4.0 Web应用程序,该应用程序在其Web.config文件的<httpModules>部分中包含此声明:

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler"/>

在大多数安装中,这既好又必要。但是,在两个安装中,我们得到了关于重复条目的以下错误。在出现此错误的两个安装中,我们发现此声明已存在于此处:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config

没有错误的安装(大多数安装)在上面的文件中没有该行。为什么Framework的Web.config文件在安装过程中不一致?我们还无法确定确切的差异。这些主要是服务器与Windows Server 2003或Windows Server 2008,但也有一些Windows 7的测试框。工作安装是上述的混合,两个非工作安装是Windows Server 2008和Windows 7.所有安装都有已安装.NET 4完整配置文件。

  

详细错误信息

     

模块IIS Web核心

     

通知BeginRequest

     

处理程序尚未确定

     

错误代码0x800700b7

     

配置错误Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'ServiceModel'

     

配置文件\\?\C:\Inetpub\wwwroot\web.config   请求的网址http://localhost:80/   物理路径C:\Inetpub\wwwroot   登录方法Not yet determined   登录用户Not yet determined

     

98: <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler"/>

1 个答案:

答案 0 :(得分:3)

启用以下Windows功能时,该模块已安装(到基本.NET Framework配置文件中):

Microsoft .NET Framework 3.5.1 - &gt; Windows Communication Foundation HTTP激活

启用WCF HTTP激活时,它会向IIS注册WCF。这包括添加WCF激活模块,添加.svc文件的脚本映射等