Ошибка: allowDefinition = 'MachineToApplication' за пределами уровня приложения - PullRequest
190 голосов
/ 01 марта 2010

Я скачал онлайн-проект в ASP.Net. При запуске приложения выдается ошибка

Ошибка использовать раздел, зарегистрированный как allowDefinition = 'MachineToApplication', за пределами уровня приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.

Какие изменения я должен внести в web.config или где-либо еще, чтобы эта работа работала?

Ответы [ 35 ]

98 голосов
/ 03 сентября 2012

Я только что столкнулся с этим "восторгом". Кажется, он появляется сразу после того, как я опубликовал веб-приложение в режиме релиза.

Единственный способ последовательно обойти проблему, которую я обнаружил, это следовать этому контрольному списку:

  1. Чистый раствор, пока ваш раствор настроен в режиме выпуска.
  2. Чистое решение, пока ваше решение настроено в режиме отладки.
  3. Сборка, пока ваше решение настроено в режиме отладки.
83 голосов
/ 24 мая 2010

Просто наткнись на этот пост и это происходило со мной.
Просто Clean проект и ошибка уходит. (должен быть ошибкой VS2010)

24 голосов
/ 21 июля 2011

У меня только что была эта проблема при создании второй версии моего сайта. Это не случилось, когда я построил его в первый раз.

Я только что удалил папки bin и obj, запустил Clean Solution и собрал его заново, на этот раз без проблем.

20 голосов
/ 01 марта 2010

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

16 голосов
/ 09 октября 2012

Эта ошибка возникает при попытке открыть проект в качестве веб-сайта. Самый простой способ определить, создали ли вы веб-сайт или проект, - это проверить папку вашего решения (то есть, где вы сохранили свой код) и посмотреть, есть ли у вас файл * .sln в корневом каталоге, если вы это сделаете, то мы создали проект.

Чтобы добавить, я столкнулся с этой ошибкой только сейчас, когда попытался открыть проект, который я создал некоторое время назад, выбрав «Файл», «Открыть веб-сайт» в меню Visual Studio, тогда как я должен был выбрать «Файл» Открыть проект "вместо. Я помазал лицо, как только понял:)

12 голосов
/ 20 ноября 2014

В Visual Studio 2013 я некоторое время боролся с этим, и довольно легко решить , просто следуйте тому, что говорит исключение "виртуальный каталог не настроен как приложение в IIS"

В моем случае я посадил WebService внутрь IIS website так что

  1. Я открыл сайт в диспетчере IIS
  2. щелкнул правой кнопкой мыши папку WCF
  3. нажал Convert to Application
  4. и затем отправляется с Ok

WCF вернулся и работает.

10 голосов
/ 10 марта 2014

Если у вас есть проект MVC с включенной сборкой представлений, одним из решений является удаление папки obj перед сборкой. Добавить в файл проекта:

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

Вот статья: Как удалить папку bin и / или obj перед сборкой или развертыванием

10 голосов
/ 01 марта 2010

Ошибка предполагает, что код, который вы используете, ожидает установки виртуального каталога в IIS.

Просмотрите документацию и добавьте необходимый виртуальный каталог. Это должен быть каталог с web.config (не корневой каталог).

8 голосов
/ 08 августа 2012

Недавнее изменение web.config может быть в неправильном файле web.config.

Свойство <machineKey...> было добавлено в Views / web.config . Независимо от того, сколько очищает и восстанавливает, ошибка оставалась. Исправление состояло в том, чтобы переместить свойство в корень / web.config .

6 голосов
/ 01 марта 2013

если вы когда-либо сталкивались с этой ошибкой

Ошибка использовать раздел, зарегистрированный как allowDefinition = 'MachineToApplication' за пределами уровня приложения. это ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS

РЕШЕНИЕ
У меня была такая же проблема с VS 2012. Я решил это

  1. Выгрузить ваш текущий проект
  2. отредактируйте ваш .csproj
  3. Найти это <MvcBuildViews>false</MvcBuildViews>
  4. Вместо false изменить значение на true
  5. Загрузите снова ваш проект, и у вас больше не должно быть этой ошибки

Если у вас есть, то одним из решений является удаление содержимого папки obj в проекте, сгенерированной компилятором.

...