Проблема наследования Web.Config - PullRequest
1 голос
/ 27 октября 2009

Я хочу, чтобы родительский конфиг в нашем приложении 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. Вы не можете заключить его в <location> вокруг этого конкретного раздела, а добавление <clear/> вызовет только другое сообщение об ошибке:

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

Ответы [ 2 ]

2 голосов
/ 07 марта 2010

В дополнение к совету вы можете запретить наследование дочерних приложений, добавив его в корневой каталог web.config

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

Как задокументировано здесь .

1 голос
/ 28 октября 2009

Я полагаю, что ваша ошибка во время выполнения вызвана чем-то другим ... например, каким-либо конфликтом сборки или просто отсутствующей сборкой. Размещенный вами фрагмент web.config существует почти дословно в нескольких моих проектах, которые я унаследовал, и прекрасно работает с подпрограммами. Однако они ссылаются на старые версии 1.0.

Сообщение об ошибке даже не имеет смысла ... «не может привести тип XYZ к типу XYZ». В самом деле? Ты не можешь? Но они одного типа! : |

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...