【问题标题】:Web.Config Inheritance ProblemWeb.Config 继承问题
【发布时间】:2010-12-10 15:13:54
【问题描述】:

我想防止我们的 IIS 7 应用程序中的父配置将以下部分推送到父应用程序下的任何应用程序中的任何子 web.configs。

    <configSections>
        <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>
    </configSections>

我需要删除该部分的原因是子应用程序不需要它甚至不需要它。因此,当父级传递它并尝试运行该子应用程序时,我会在运行时得到以下信息:

Unable to cast object of type 'System.Web.Configuration.ScriptingScriptResourceHandlerSection' to type 'System.Web.Configuration.ScriptingScriptResourceHandlerSection'

我认为没有办法阻止 configSections 向下应用到子应用程序 web.configs。您不能用&lt;location&gt; 将其包裹在此特定部分周围,添加&lt;clear/&gt; 只会导致另一条错误消息:

The configuration section 'appSettings' cannot be read because it is missing a section declaration 

【问题讨论】:

    标签: asp.net web-config


    【解决方案1】:

    根据建议,您可以通过将其添加到根 web.config 来阻止子应用程序继承

    <location path="." inheritInChildApplications="false">
    ...
    </location>
    

    如文档所述here

    【讨论】:

    • 我知道这不是公认的答案,但这正是我正在寻找的并且符合所述问题(即使听起来提问者遇到了不同的问题)。
    【解决方案2】:

    我相信您的运行时错误是由其他原因引起的……例如某种程序集冲突,或者只是缺少程序集。您发布的 web.config sn-p 几乎逐字存在于我继承的几个项目中,并且与子应用程序配合良好。但是他们引用了旧的 1.0 版本。

    错误消息甚至没有意义......“无法将类型 XYZ 转换为类型 XYZ。”真的吗?你不能?但他们是同一类型! :|

    【讨论】:

    • 是的,我需要安装 ASP.NET 1.0 AJAX
    猜你喜欢
    • 2010-09-26
    • 2011-11-11
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    相关资源
    最近更新 更多