我在将IIS服务器升级到.NET 4.5.1(之前安装了.NET 4.0)后遇到了相同的错误。
在我的情况下,使用参数-iru
运行aspnet_regiis
解决了问题。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -iru
注意:在 64位系统 上您应该使用
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -iru
注:
此问题是由于针对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