尝试在IIS7的默认应用程序池中部署。net 3.5网站,并将框架部分设置为4.0,我得到以下错误。

有一个副本 包含。扩展/脚本/ scriptResourceHandler”部分 定义的。

对这些冒犯的行进行评论也无济于事。你能给我点建议吗?


当前回答

在我的例子中,我有两个不同的应用程序共享同一个应用程序池。第一个使用的是。net4.5框架,而新的使用的是2.0。当我把第二个应用程序更改为它自己的应用程序池时,它开始工作很好,没有更改web.config。

其他回答

我的解决方案是将默认应用程序池的。net框架版本从v4.0更改为v2.0:

如果你的计划是部署到一个在。net 4.0中运行应用程序池的IIS,你将需要清理web。包括所有指向.net 3.5的section定义。失败的原因是这些节定义已经包含在根web中了。.net 4.0中的config(参见%windir%\microsoft.net\framework\v4.0.30319\config\machine.config),其中包含已经声明的所有system.web.extensions。

另一个快速修复方法是将应用程序池设置为2.0,就像您的开发机器所显示的那样。

在我的例子中,我有两个不同的应用程序共享同一个应用程序池。第一个使用的是。net4.5框架,而新的使用的是2.0。当我把第二个应用程序更改为它自己的应用程序池时,它开始工作很好,没有更改web.config。

如果像我一样,需要以v4为目标,但只能使用。net 3.5构建,请遵循这里的说明。只需替换在你的网页。配置<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>

显然,其他人也有这个问题。他们在Framework 4.0中重新构建。你能吗?

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