无法从程序集“System.ServiceModel”加载types“System.ServiceModel.Activation.HttpModule”
我正在IIS中运行我的Web项目。
这是一个4.0框架APP。
我有一个Service.svc,当我运行我的应用程序时,我得到这个错误。
“无法从程序集”System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“加载types”System.ServiceModel.Activation.HttpModule“
我试过这个 – > aspnet_regiis.exe -iru,我发现在很多论坛,它并没有解决我的问题。
有谁知道另一种方法?
尝试
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru
当.NET Framework的多个版本在一台计算机上并行执行时,映射到ASP.NET应用程序的ASP.NET ISAPI版本将确定应用程序使用的是哪种版本的公共语言运行库(CLR)。
上述命令将安装与Aspnet_regiis.exe关联的ASP.NET版本,并仅在IIS中注册ASP.NET。
我在我的机器上安装了Windows 8,而aspnet_regiis.exe工具也没有为我工作。
解决scheme为我工作是张贴在这个链接上,由Neha的答案: System.ServiceModel.Activation.HttpModule错误
到处提到这个解决scheme的问题是通过使用aspnet_regiis.exe重新注册aspnet。 但这不适合我。
虽然这是一个有效的解决scheme(在这里精美地解释)
但它不适用于Windows 8。
对于Windows 8,您需要Windowsfunction并在“.Net Framework 3.5”和“.Net Framework 4.5高级服务”下启用所有function。
谢谢Neha
你好,谢谢你的提问。 解决方法:“无法从程序集”System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“加载types”System.ServiceModel.Activation.HttpModule“
在Windowsfunction检查所有的.NET 4高级服务和.NET 3.5
就像Nicolas Gago一样,我尝试了aspnet_regiis.exe -iru,但没有成功。 function开启后,黄色的屏幕错误消失了。 谢谢;
您可以使用以下命令在Windows Server 2012上使用PowerShell安装这些function:
Install-WindowsFeature -Name NET-Framework-Features -IncludeAllSubFeature Install-WindowsFeature -Name NET-WCF-HTTP-Activation45 -IncludeAllSubFeature
您可以使用以下命令获取function列表:
Get-WindowsFeature | Format-Table
在Windows Server 2012中。转到ISS – >模块 – >删除ServiceModel3-0。
好的,终于明白了。
在System32/ApplicationHost.config
更改此行
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
至
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
如果这还不够
将以下行添加到Web.config
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
从服务器pipe理器的“function”节点中,还可以删除通过激活其他某个angular色而安装的.NET Framework 3.5.1function下的一些子项。
例如,删除了WCF激活function如下,我们的网站回来了:
- [x] .NET Framework 3.5.1function
-
- [x] .NET Framework 3.5.1
- [] WCF激活
- HTTP激活
- []非HTTP激活
注意:这不需要我们重新启动。
细节
http://msdn.microsoft.com/en-us/library/hh169179(v=nav.71).aspx
“运行IIS的计算机上有多个版本的.NET Framework时,会发生此错误…”
我意外地将一个网站发布到另一个网站的目录后,我得到了这个错误。 这两个网站有不同版本的.net。 为我修复的是更改应用程序池。 要做到这一点,在IISpipe理器中:
点击网站=>高级设置…(在右边)=>点击应用程序池右边=>一个带有“…”的button应该出现=>select“.NET v4.5 Classic”
如果该应用程序池不起作用,请尝试其他一些应用程序池。
我们在一个网站旁边使用了一个networking服务,当我们发布这个网站的时候,它也会返回这个错误。 我们发现,通过进入IIS并从模块中移除ServiceModel,并从Handler映射中移除svc-Integrated,错误消失了。
删除.Net错误信息中标识的模块,1
在Windows Server 2012中。转到ISS – >模块 – >删除ServiceModel3-0。 (没有号码为我工作)