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

问题描述:

我有点问题。 我的旧网络服务器(Windows 2003)已被替换为2008 R2。我有一个管理员帐户,可以做我想做的任何事情,但我不是这方面的专家。 我将角色配置为具有应用程序开发和Web服务器(iis7)。无法读取配置节'system.servicemodel',因为它缺少部分声明

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

我认为这是一个WCF问题,但我无法掌握如何解决它。我尝试了我在谷歌上找到的所有东西。 aspnet_regis,ServiceModelReg.exe等。 我甚至尝试重新安装网络服务器角色,但每次尝试输入网站设置时仍然会出现此错误。

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

+4

您确定您正在使用的AppPool正在正确的框架版本(4.0)上运行吗?找到描述此问题的链接:http://blog.benday.com/archive/2010/05/19/23278.aspx – Ozzy 2011-06-16 07:54:21

+0

[This](http://*.com/a/4890368/664054)解决了它的问题我 – WhiteKnight 2013-05-01 13:49:55

+0

FWIW:我最近遇到了同样的问题,并通过全新的应用程序“发布”解决问题,然后回收应用程序池。希望这可以帮助别人! :) – 2015-11-03 23:19:39

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

<system.webServer> 
    </system.webServer> 

我有同样的错误信息,这是因为我错过了该服务器上的.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

+0

是的,我检查了这一点,但它已经有3.5 SP1。 – Nicolai 2012-06-18 08:14:46

+14

谢谢你的提示。对于我们的情况,它是由使用.Net 2.0而不是4.0的应用程序池引起的。 – Hong 2012-06-18 14:43:02

转到IIS中的应用程序池,并选择“设置应用程序池默认值”[可用在右上角],并检查.net框架的版本。

注:It'ld默认

+0

这个答案在正确的道路上开始了我。将应用程序池的.NET Framework版本从v2.0切换到v4.0后,错误消失了。 – 2017-03-10 16:02:19

被选择为.NET 4.0版本我有收到此错误不同的原因。

这发生在MVC项目从.Net 4.0迁移到4.5的过程中,其中Microsoft.IdentityModel库被替换为System.identityModel。在我来说,我已经做了所有必要的Web.Config迁移步骤listed here,但已经忘记了在configSections部分修改的部分名称:

<configSections> 
<section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
</configSections> 

由于written here,该部分的定义应该是:

<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 

我的问题是没有安装WCF服务。安装,解决了我的问题:http://blogs.msdn.com/b/knom/archive/2009/10/14/iis7-wcf-services-svc-do-not-work.aspx

请注意,将应用程序池.NET版本从2.0更改为4.0不是我的选择,因为该站点需要在2.0上运行。

因为我的项目需要在.NET 2.0 运行,我必须遵循这个链接,它为我解决方案3工作:运行file.js

http://blogs.msdn.com/b/wenlong/archive/2010/11/23/why-does-machine-config-contain-invalid-xml-content-after-installing-net-3-5-patches.aspx

+0

真的很感谢,这是我的答案 – mkb 2017-03-24 14:47:57

我有同样的问题..我使用:aspnet_regiis来修复它。exe -i