Я загрузил онлайн-проект в 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".
Как говорит Джонни:
- Чистое решение, в то время как ваше решение настроено в режиме выпуска.
- Чистое решение, в то время как ваше решение настроено в режиме отладки.
- Постройте, пока ваше решение настроено в режиме отладки.
Ответ 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 в качестве корня приложения, и он отлично работал оттуда.
Надеюсь, что это поможет кому-то еще.