我运行的是aspnet_regiis.exe,但我得到同样的错误:
无法从中加载类型'System.ServiceModel.Activation.HttpModule' assembly'System.ServiceModel,Version = 3.0.0.0,Culture = neutral, 公钥= b77a5c561934e089'。描述:未处理的异常 在执行当前Web请求期间发生。请 查看堆栈跟踪以获取有关错误和位置的更多信息 它起源于代码。例外细节: System.TypeLoadException:无法加载类型 程序集中的“System.ServiceModel.Activation.HttpModule” 'System.ServiceModel,Version = 3.0.0.0,Culture = neutral, 公钥= b77a5c561934e089'。
答案 0 :(得分:21)
如果您运行的是Windows 8,则此方法无效。微软不会让你运行这个命令,告诉你:
此版本的操作系统不支持此选项。管理员应该使用“打开/关闭Windows功能”对话框,服务器管理器管理工具或dism.exe命令行工具,使用IIS8安装/卸载ASP.NET 4.5。
原因在于此链接:http://support.microsoft.com/kb/2736284。
对我有用的解决方案发布在此链接上,由Neha回答:System.ServiceModel.Activation.HttpModule error
通过使用aspnet_regiis.exe重新注册aspNet,提到了这个解决方案的问题。但这对我没用。
虽然这是一个有效的解决方案(正如这里所说的那样精彩)
但它无法与Windows 8一起使用。
对于Windows 8,您需要Windows功能并启用“.Net Framework 3.5”和“.Net Framework 4.5高级服务”下的所有内容。
谢谢Neha
答案 1 :(得分:13)
将IIS服务器升级到.NET 4.5.1(以前安装了.NET 4.0)后,出现了同样的错误。
在我的情况下,使用参数 aspnet_regiis
运行 -iru
修复了问题,即
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -iru
注意:在 64位系统上你应该使用
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -iru
备注:强>
.NET 4.0及更高版本(例如4.5.1)全部安装到v.4.0.30319中,与早期版本相比发生了变化(您将找不到v4.5文件夹)。要获取已安装的.NET框架版本,请参阅 this answer。
here 描述了此错误的原因,如果您想手动检查,请参阅本文中的以下内容:
出现此问题的原因是Windows进程激活服务(WAS)的 Applicationhost.config 文件定义了以下部分,此部分与.NET Framework 4.0不兼容:强>
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
此部分应定义如下(注意preCondition
):
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule,
System.ServiceModel, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
preCondition="managedHandler,runtimeVersionv2.0" />
注意:您可以在以下位置找到 Applicationhost.config
文件:%windir%\system32\inetsrv\config
答案 2 :(得分:2)
似乎ASP.NET 4.0未正确注册IIS。你能尝试用IIS重新注册asp.net吗?您可以尝试使用2.0和4.0,以确保它适用于所有.NET版本。
对两个版本的asp.net使用以下命令来注册带有IIS的asp.net
aspnet_regiis -i
它位于两个.NET框架版本文件夹中。
C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 和 C:\的Windows \ Microsoft.NET \框架\ V2.0.50727
答案 3 :(得分:1)
访问以下目录中的applicationhost.config文件: C:\ Windows \ System32下\ INETSRV \配置
将定义以下部分:
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
上面的定义与.NET framework 4.0不兼容,您可以通过以下内容替换上述部分来解决此问题:
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
答案 4 :(得分:0)
要解决此问题,请运行以下命令行:
答案 5 :(得分:0)
要解决此问题,请运行以下命令行:
它肯定会有用。
答案 6 :(得分:0)
在Windows 2012上,以下工作正常:
由于某种原因,我不知道默认应用程序池已设置为使用4.0:
但它未正确反映在c:\ windows \ system32 \ inetesrv \ config \ applicationhost.config中:
NULL
我不得不将其重新设置为2.0,然后重新设置为4.0,然后配置文件很好并且错误消失了:
<add name="DefaultAppPool" enable32BitAppOnWin64="true" />
答案 7 :(得分:0)
我来晚了,希望对您有所帮助...。这是IIS 8.0的已知问题
解决方案是从IIS管理器中删除3.x模块和处理程序。 您可以在应用程序或站点级别将其删除 将它们保留在applicationHost.config中。但我想从中删除它们 applicationHost.config。请执行以下步骤:
在IIS管理器中,单击“计算机名称”节点。在“功能视图”中, 双击“模块”。找到“ ServiceModel”并将其删除。图片1 解决IIS 8错误:无法加载类型 ‘System.ServiceModel.Activation.HttpModule’
返回计算机名称节点的“功能视图”,双击 “处理程序映射”。找到“ svc-Integrated”并将其删除。图片2 解决IIS 8错误:无法加载类型 ‘System.ServiceModel.Activation.HttpModule’