Наследование web.config: <clear /> вызывает ошибку синтаксического анализа XML в <system.webServer> <modules> - PullRequest
4 голосов
/ 15 февраля 2012

Я пытаюсь добавить небольшое приложение asp.net в подпапку моего существующего сайта.Проблема в том, что корневой файл web.config содержит модули, которые нарушают работу моего приложения.Я хочу предотвратить / удалить наследование Web.config.

Родительский web.config

...
<system.webServer>
  ...
  <modules>
    <add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core" />
    <add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core" />
    ...
  </modules>
...

Я не могу использовать следующий тег местоположения в корне, поскольку существуют другие подпапки, в которыхЯ хочу хочу наследовать.Есть ли способ для ребенка отключить наследование от родителя?

<location path="." inheritInChildApplication="false"> 

Child web.config

...
<system.webServer>
  ...
  <modules>
    <clear/>
  </modules>
...

Я попытался использовать clear, но это приводит к странной ошибке синтаксического анализа:«Ошибка синтаксического анализа XML: элемент не найден. Расположение: ... Строка № 1, столбец 1:«

Если я использую метод удаления для каждого модуля, у меня будет определенный успех.Пока я оставляю хотя бы 1 модуль.(Не имеет значения, какой именно) Когда я удаляю последний модуль, я получаю ту же ошибку синтаксического анализа, что и очисткаКто-нибудь есть идеи, почему эта ошибка происходит?Есть ли другой способ устранить наследование web.config?

1 Ответ

1 голос
/ 01 мая 2012

Мне кажется, что самое простое решение - настроить приложение как свое собственное приложение, поскольку подпапка содержит, как вы говорите, приложение. Вы по-прежнему можете связать пользователей с другим родительским приложением. Просто установите подпапку для перенаправления всех запросов в другое приложение. Для меня это больше похоже на архитектурную проблему, но я только предполагаю, основываясь на небольшом количестве информации.

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

Мое последнее предложение будет заключаться в том, что вам, возможно, просто нужно немного лучше разбить исходный код и ссылки приложений и перекомпилировать.

...