无法读取配置节'system.servicemodel',因为它缺少节声明

Nic*_*lai 31 asp.net wcf iis-7 windows-server-2008-r2

我有点问题.我的旧网络服务器(Windows 2003)已被2008 R2取代.我已经获得了一个管理员帐户,可以做我想做的任何事情,但我不是这方面的专家.我将角色配置为具有应用程序开发和Web服务器(iis7).

但是,我的网站运行.NET4,角色只安装了3.5.所以我试图在服务器上手动安装.NET4.我的问题是,由于我的web.config中的System.ServiceModel部分,我的网站将无法使用它.我确保它在.NET4应用程序池中运行.

我认为这是一个WCF问题,但我无法掌握如何解决它.我尝试过在谷歌上发现的一切.aspnet_regis,ServiceModelReg.exe等.我甚至尝试过重新安装webserver角色,但每次尝试进入网站设置时,我仍然会收到此错误.

我希望这里有一些专家,他们知道如何解决这个问题.

Mik*_*ney 32

我有相同的错误消息,这是因为我错过了该服务器上的.NET 3.5.1框架.启用修复我的问题:http: //blogs.msdn.com/b/sqlblog/archive/2010/01/08/how-to-install-net-framework-3-5-sp1-on-windows-server- 2008-R2-environments.aspx

  • 谢谢你的提示.对于我们的情况,它是由使用.Net 2.0而不是4.0的应用程序池引起的. (16认同)

小智 26

转到IIS中的应用程序池,然后选择"设置应用程序池默认值"[右上角提供],并检查.net框架的版本.

注意:默认情况下,它被选为.net 4.0版本


Nic*_*lai 6

显然IIS7需要一个System.WebServer部分,即使它是空的.将以下内容添加到我的web.config文件修复了我的问题.

  <system.webServer>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)


Ale*_* A. 6

我有一个不同的原因来得到这个错误.

这是在MVC项目从.Net 4.0迁移到4.5期间发生的,其中Microsoft.IdentityModel库被System.identityModel替换.在我的情况下,我已经完成了此处列出的所有必要的Web.Config迁移步骤,但忘记更改configSections部分中的部分名称:

<configSections>
 <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
Run Code Online (Sandbox Code Playgroud)

作为写到这里,该部分的定义应该是:

<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)