Ошибка: allowDefinition = 'MachineToApplication' за пределами уровня приложения

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

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

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

Ответ 1

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

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

  • Чистое решение, в то время как ваше решение настроено в режиме выпуска.
  • Чистое решение, в то время как ваше решение настроено в режиме отладки.
  • Постройте, пока ваше решение настроено в режиме отладки.

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

В моем случае у меня было WebService посажено внутри IIS website, поэтому

  • Я открыл веб-сайт в диспетчере IIS
  • щелкните правой кнопкой мыши папку WCF
  • нажал Convert to Application
  • а затем отправлен с Ok

WCF работает и работает.

Ответ 8

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

Свойство

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

Ответ 9

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

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

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

Ответ 10

если вы столкнулись с этой ошибкой

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

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

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

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

Ответ 11

В моем случае проблема возникла только после того, как я опубликовал проект в подкаталоге. Из-за недостатка знаний я поместил подкаталог web_publish в каталог web_project.

Понятно, что web_publish содержит также тот же Web.config, что содержит проект. Тем не менее, web_project не знает, что мой web_publish следует избегать при поиске Web.config во вложенных подкаталогах. Таким образом, Web.config были дублированы и появилась ошибка.

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

Ответ 12

В моем случае была папка "Резервное копирование", в которой содержалась еще одна копия всего веб-сайта. Это означало еще один web.config, и поэтому сборка завершилась с ошибкой. Я удалил папку "Резервное копирование", выполнил решение "Чистое" в сборках Debug и Release, и ошибка исчезла.

Ответ 13

Очистите свой проект Удалите папку /obj (возможно, используя публикацию и развертывание?), В ней есть ошибка)

Ответ 14

Возможно, проблема в версии, как вы загружаете проект .Net framework 2.0 и хотите открыть его в VS2008, тогда вам нужно будет перейти на последнюю версию, а VS создаст резервную копию папки в том же корневом каталоге.Вы получите ответ здесь.

Ответ 15

У меня возникла эта ошибка при создании решения с проектом веб-развертывания, созданным в моем решении. Я разрешаю ошибку, удаляя папку, в которой строится проект веб-развертывания. Эта папка указана в атрибуте "Папка проекта" свойств WDP

Ответ 16

В моем случае

Решение содержит 6 проектов, 1 основную и 5 подкаталогов. все подкаталоги, имеющие web.config.

При запуске любой страницы в подкаталогах я получал такую ​​же ошибку.

Я удалил эту строку из web.config,

<authentication mode="Windows"/>

который работал у меня.

Ответ 17

Моя проблема заключалась в том, что я случайно опубликовал свой веб-сервис в предварительно заполненном месте на новой установке VS2010.

Я опубликовал в папке с именем PreCompiledWeb, а наличие web.config, я подозреваю, испортил его.

Я просто отключил папку и обновил проект.

При двойном щелчке этой ошибки - это привело меня к тому ошибочному файлу web.config, который опрокинул меня.

Ответ 18

Удалить папки bin и obj. Затем перестройте решение.

Ответ 19

По-видимому, в моем решении было два файла web.config. Я использую MVC4, и в разделе "Виды" был еще один файл конфигурации, и я вносил изменения в неправильный файл. Исправлено это помогло мне.

Но вы всегда можете изменить перенаправление/маршрут по умолчанию в файле global.asax.

Ответ 20

Возможно, у вас есть папка проекта sub asp.net в папке проекта, которая не настроена как виртуальный каталог. Установите проект для запуска в IIS.

Ответ 21

Я добавил на свой сайт публикацию script. В конце удалите папку obj из папки вашего веб-сайта.

Ответ 22

У меня эта проблема более частая, если в файле проекта включена опция "true".

  • Установить false

Как говорит Джонни:

  • Чистое решение, в то время как ваше решение настроено в режиме выпуска.
  • Чистое решение, в то время как ваше решение настроено в режиме отладки.
  • Постройте, пока ваше решение настроено в режиме отладки.

Ответ 23

У меня был проект, который я не хотел быть веб-приложением, я хотел, чтобы это была папка. Ответ заключался в том, чтобы удалить файл web.config в целом. Он принадлежит только в корне приложения.

Ответ 24

Если вы столкнулись с этой проблемой при публикации своего веб-сайта или приложения на каком-либо сервере, простым решением, которое я использовал, является преобразование папки, содержащей файлы в веб-приложение.

Ответ 25

У меня такая же проблема в VS 2013 после публикации моего проекта в режиме отладки. Проблема была решена путем удаления obj/files

Ответ 26

У меня есть проект веб-сайта.

В моем случае я переместил файл решения на другой путь и это вызвало проблему. Я вернул его в предыдущее место, и проблема исчезла.

Ответ 27

Через Visual Studio я опубликовал службу WCF через FTP на внешний сервер. Он работал нормально локально и при публикации на внутренний сервер, но не на внешний. Решение было опубликовать без предоставления Site Path (другими словами, публиковать непосредственно в корневом каталоге виртуального каталога).

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

Ответ 28

tip 1: очистить и затем перестроить.

tip 2: просто закройте VS и снова откройте.

tip 3: загруженный проект может находиться внутри другой подпапки... открыть папку, в которой есть .net файлы.

с:/demo1/демо/ (все файлы)

Вам нужно открыть демоверсию vs... not demo1.

Ответ 29

Я пробовал каждое решение выше, но никто из них не работал на мою проблему. (Я уверен, что есть тысячи решений этой проблемы). По моему сценарию, я пытался опубликовать свой веб-сервис WCF, который был у меня в процессе тестирования.

Однако я не понял, что в производстве мы только HTTPS, то есть мы перенаправляем все на HTTPS. Как оказалось, я указывал на службу через HTTP вместо HTTPS, тем самым вызывая ошибку. Решением в этом сценарии было просто изменить протокол адресов на HTTPS, а не на HTTP.

Надеюсь, что помогает бедняге, пытаясь понять эту проблему.

Ответ 30

В моем случае я принимал GoDaddy, который не был проблемой, но он добавил слой путаницы.

У меня была корневая папка "WebServices" и она была установлена ​​в качестве корня приложения.

ОДНАКО, служба была в подпапке под названием "GeoLocateSpecials", поскольку папка "WebServices" является контейнером для многих служб.

Поэтому мне пришлось установить GeoLocateSpecials в качестве корня приложения, и он отлично работал оттуда.

Надеюсь, что это поможет кому-то еще.