升级到.NET 4.0时出现<system.web.extensions>配置组问题

RPM*_*984 9 asp.net deployment web-config asp.net-4.0 system.web

所以我们已经从3.5 SP1升级了我们的站点 - > .NET 4.

当我们运行该站点时,我们收到内部服务器错误(500),说明无法读取以下配置组:

<system.web.extensions>
        <scripting>
            <scriptResourceHandler enableCompression="true" enableCaching="true" />
            <webServices>
                <jsonSerialization maxJsonLength="999999" />
            </webServices>
        </scripting>
    </system.web.extensions>
Run Code Online (Sandbox Code Playgroud)

我们注释掉了这一部分并且网站运行正常(但现在我们遇到了JSON的问题 - 因为上面要求的属性).

我们已经阅读了关于这个问题的线程,并且大多数人都说"你的应用程序池没有运行4.0".它就是,所以这不是问题.

我还读过线程,说IIS正在以某种方式读取旧的machine.config文件.

使用.NET 4,您知道web.config的许多部分已移至machine.config.

所以我们把这部分放回web.config的顶部:

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
                    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                    <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                </sectionGroup>
            </sectionGroup>
        </sectionGroup>
Run Code Online (Sandbox Code Playgroud)

现在网站似乎工作正常.

如果这是正确的解决方案,我还是有点担心.

人们有什么想法?这是正确的解决方法吗?

编辑:

3个星期,没有答案......该死的.=)

RPM*_*984 2

由于我没有答案,而且大量的谷歌搜索也没有得到任何结果,所以我决定坚持原来的修复(将 system.web.extensions 部分添加回 web.config)。