IIS7部署 – 重复“system.web.extensions / scripting / scriptResourceHandler”部分

在试图部署一个.net 3.5网站的默认应用程序池IIS7框架部分设置为4.0时,我得到以下错误。

定义了一个重复的“system.web.extensions / scripting / scriptResourceHandler”部分。

评论违规线路也没有帮助。 任何我需要做什么或看什么指针?

如果您的计划是部署到在.net 4.0中运行应用程序池的IIS,则需要清除包含指向.net 3.5的所有部分定义的web.config。 这个失败的原因是因为这些节定义已经包含在.NET 4.0的根web.config中(参见%windir%\ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config),它包含了所有的系统。已宣布web.extensions。

另一个快速解决scheme是将应用程序池设置为2.0,就像您的开发机器似乎具有。

对我来说,解决scheme是将默认应用程序池中的应用程序池中的.NET Framework版本从v4.0更改为v2.0:

在这里输入图像说明

如果像我一样,你需要定位v4,但只能使用.net 3.5构build,请按照这里的说明操作。 只需在web.config中replace<configSections>的全部内容:

 <configSections> <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/> <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> </sectionGroup> </sectionGroup> </sectionGroup> 

El problema es porque el pool por defecto esta en.net 4.0 Solucion:entrar a Administrador IIS server lado derecho establecer valores de grupos de aplicaciones。[在此input图像] [1] y cambiar la vercion del framework![enter image description这里] [2]

Concono pudes solucionar el problema instalar la administracion central SharePoint 2010

—–通过谷歌翻译—–

问题是因为该池是默认的。 Net 4.0解决scheme:input服务器IISpipe理器,在应用程序池的右侧设置值。 [在这里input图片描述] [1]并更改框架版本![在这里input图片描述] [2]

这应该可以解决安装SharePoint中央pipe理2010的问题

Necromancing。
如果您的web.config中没有任何system.web.extensions config-sections或handler / module条目,则会导致此问题,因为您/其他人在隐藏时复制了VisualStudio-Project(2013/2015/2017) – 文件不被隐藏

因此,它不仅会复制.git,而且还会包含一个包含IIS-Express applicationhost.config文件的.VS文件, 文件指向不存在path的web.config文件 (或者更糟糕的是存在的path,但没有相同的内容)…

解:
删除.VS文件夹中的applicationhost.config文件。
或者完全删除.VS文件夹。
Visual Studio将重新创build它。

显然,其他人(有)这个问题米。 他们在Framework 4.0中重build。 你可以吗?

此外, 请参阅确保您的IIS是新鲜的 。

避免可能帮助他人的这个问题的另一种方法是在可能的情况下将.net Web服务构build到版本4.0或更高版本。

设置应用程序池为2.0,我做到了,工作。

在我的情况下,我有2个不同的应用程序共享相同的应用程序池 第一个使用.net4.5框架,新的使用2.0。 当我将第二个应用程序更改为自己的应用程序池时,它开始正常工作,没有更改web.config。

我的决议很愚蠢。

  • 我安装了一个.net 3.5的副本

  • 创build另一个应用程序池,并select.net 3.5(它说下降2.0.5077)

  • 将我的网站添加到该应用程序池

  • 回收旧的和新的游泳池,网站开始工作。

即使打开Windowsfunction说我做了,并创build另一个应用程序池使用,但没有安装3.5安装。 我希望这可以帮助别人。

在我的情况下,我想手动添加urlrewrite规则,并看不到明显的错误(我错过了<rules>标签):

错误代码:

  <rewrite> <rule name="some rule" stopProcessing="true"> <match url="some-pattenr/(.*)" /> <action type="Redirect" url="/some-ne-pattenr/{R:1}" /> </rule> </rewrite> </system.webServer> </configuration> 

正确的代码(带规则标签):

  <rewrite> <rules> <rule name="some rule" stopProcessing="true"> <match url="some-pattenr/(.*)" /> <action type="Redirect" url="/some-ne-pattenr/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 

我解决了它,执行以下步骤:

  1. 我在IIS中创build了一个新的应用程序组。
  2. 打开具有此问题的网站或Web应用程序的高级设置。
  3. 并设置新的应用程序组。

在这里你有这些步骤的图像:

创建一个新的应用程序的组

在创建应用程序的组之后

在您的网站或Web应用程序中设置应用程序组

这个错误信息似乎出现在各种情况下。

就我而言,在我的应用程序的Web.Config文件之上,我在根文件夹(C:\ Inetpub \ http://www.root)中有一个额外的Web.Config文件。; 在经过一番testing之后,大概是离开了那里,我忘记了这一切,不知道问题出在哪里。

删除它解决了我的问题。

这可能是你的错误答案。 但是,当我试图解决我的问题时,这是Google上的第一次。 照这样说…

我也发生了同样的错误信息,但是当我尝试通过Visual Studio运行IIS Express时。

我的问题是,我错误地将我的applicationhost.config提交给TFS。 后来当我试图在我的笔记本电脑上运行该项目后得到最新的提交。 这是错误发生的时间。

我发现虚拟目录path是错误的。

 <virtualDirectory path="/" physicalPath="C:\Users\giddan\Documents\Visual Studio 2015\Projects\ProjectName\DeV.ProjectName\DeV.ProjectName.Web" /> 

希望这有助于人!

这是我的第一篇文章,所以要温柔:)

我的应用程序是一个ASP.Net3.5应用程序(使用框架的第二版)。 当ASP.Net3.5应用程序被创build时,Visual Studio会自动将scriptResourceHandler添加到web.config中。 .Net的更高版本把它放到machine.config中。 如果使用版本4应用程序池(取决于安装顺序,这是默认应用程序池)运行ASP.Net 3.5应用程序,则会出现此错误。

当我转移到使用2.0版的应用程序池。 错误消失了。 然后,我不得不处理服务WCF .svc时的错误:

HTTP错误404.17 – 未find请求的内容似乎是脚本,不会由静态文件处理程序提供

经过一番调查,似乎我需要注册WCF处理程序。 使用以下步骤:

  1. 打开Visual Studio命令提示符(以pipe理员身份)
  2. 导航到“C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows通信基础”
  3. 运行servicemodelreg -i