Ошибка использовать раздел, зарегистрированный как allowDefinition = 'MachineToApplication', за пределами уровня приложения.
Верхняя строка на всех моих страницах aspx в моем каталоге / portal / содержит это сообщение об ошибке, и я знаю, что это обычное сообщение. Я погуглил это сообщение об ошибке без конца, и я вижу много сообщений, в которых говорится, что я настраиваю папку / portal /, как приложение в IIS (которое у меня есть), и больше сообщений, говорящих мне, что я вложил web.configs (но ни одна из публикаций не предлагает руководство к решению).
Моя установка состоит в том, что у меня есть web.config в моем корневом каталоге, а затем я пытаюсь создать портал компании в каталоге / portal /. Каталог / portal / имеет свой собственный (необходимый) web.config.
Моя строка 50 файла web.config выглядит так:
<customErrors mode="Off" defaultRedirect="customerrorpage.aspx"/>
<anonymousIdentification enabled="true"/>
<authentication mode="Forms"/>
<membership defaultProvider="MyProvider">
Итак, у меня есть domain.com/web.config AND domain.com/portal/web.config ... поэтому моя страница domain.com/portal/default.aspx не будет загружаться.
Каково реальное решение этого? Нахожу ли я каким-то образом способ объединить мой корневой web.config с моим / portal / directory web.config, или я здесь далеко от базы?
Любое руководство будет с благодарностью!
источник
Ответы:
Просто для справочной информации; Информация о конфигурации веб-сайта ASP.NET определяется в одном или нескольких файлах Web.config. Настройки конфигурации применяются иерархически. Существует «глобальный» файл Web.config, в котором изложена базовая информация о конфигурации для всех веб-сайтов на веб-сервере; этот файл живет в
%WINDIR%\Microsoft.Net\Framework\version\CONFIG
папке. Вы также можете иметь файл Web.config в корневой папке вашего сайта. Этот файл Web.config может переопределять настройки, определенные в «глобальном» файле Web.config, или добавлять новые. Кроме того, у вас могут быть файлы Web.config во вложенных папках вашего веб-сайта, которые определяют новые параметры конфигурации или переопределяют параметры конфигурации, определенные в файлах Web.config выше в иерархии.Некоторые элементы конфигурации в Web.config не могут быть определены за пределами уровня приложения, что означает, что они должны быть определены в «глобальном» файле Web.config или в файле Web.config в корневой папке веб-сайта.
<authentication>
Элемент является одним из таких примеров. Приведенное выше сообщение об ошибке указывает на наличие файла Web.config в одной из подпапок веб-сайта, который имеет один из этих элементов конфигурации, который нельзя определить за пределами уровня приложения.Источник: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
Вы правильно определили 2 возможных подхода.
1 - В зависимости от содержимого вашего второго web.config и от того, позволят ли ваши настройки (т. Е. Тот же метод аутентификации) - добавьте
<authentication>
настройки и любые другие элементы, которые должны быть определены глобально, в верхний web.config2 - Если вы не можете объединить содержимое web.config, вы сможете превратить подпапку в веб-приложение в IIS, выполнив шаги, указанные в этой ссылке в архиве ниже. Исходная ссылка больше не работает. (см. архив ) Надеюсь, это поможет.
источник
Что бы это ни стоило, я получил сообщение об ошибке: «Ошибка использовать раздел, зарегистрированный как allowDefinition =« MachineToApplication »за пределами уровня приложения». и в итоге решил его, очистив каталоги \ myWebApp \ obj \ Debug и \ myWebApp \ obj \ Release. Мне также нужно было установить начальную страницу по умолчанию. Но затем приложение запустилось нормально. НТН.
источник
Как сказано выше в RY4N, проблема не обязательно в файле web.config в папке Project. В некоторых случаях я обнаружил, что запуск сборки под профилем Debug оставит детрит в папке Debug соответствующего проекта. Здесь часто присутствует файл web.config, который приводит к указанной выше ошибке, когда вы впоследствии запускаете сборку в профиле Release.
Решение, которое работает для меня здесь, состоит в том, чтобы удалить всю папку Debug, созданную предыдущими сборками в каталоге проекта.
источник
Это также происходило на моем домашнем компьютере, но ТОЛЬКО когда я включил Build Views в конфигурацию выпуска и собрал конфигурацию выпуска. Иначе этого не произошло.
Хотя опция Build Views очень хороша, я отключил ее, потому что эта «ошибка» всегда появлялась и позволяла мне не запускать приложение.
источник
Просто сказать
Если вы обновляете (например, 2008 -> 2010), проект Visual Studio создаст резервную копию (если вы разрешите) в решении проекта, которое будет добавлено в новое решение. Старый Webconfig - это место, из которого может возникнуть ошибка, указанная выше. ,
« Файл Web.config в одной из подпапок веб-сайта, в котором содержится один из этих элементов конфигурации, который нельзя определить за пределами уровня приложения. » @Benni_mac_b
Чтобы исправить это: Просто удалите резервную копию папки из проекта и решения, в этом сценарии.
источник
У меня есть другая возможная причина, по которой это происходит.
У меня было более старое веб-приложение, встроенное в 2.0. Я перенес его на 4.5 решение.
Приложение построено и отлажено просто отлично, когда внутри Visual Studio, но затем, когда я попытался опубликовать веб-приложение, эта ошибка повторялась снова и снова.
Наконец, я обнаружил, что проблема заключалась в том, что Build Action для файла web.config был «Встроенный ресурс», а не «Содержимое». Кроме того, для параметра «Копировать в выходной каталог» было установлено «Всегда копировать», а не «Не копировать». Я не знаю, когда были сделаны эти настройки, но я верю, что это было в версии 2.0 приложения.
Изменение параметров файла web.config позволило безошибочно работать с публикацией в публикации Visual Studio 2012.
источник
У меня была такая же проблема в проекте MVC. Произошла ошибка при попытке публикации. Оказалось, что папка obj должна быть пустой (или, по крайней мере, не содержать
web.config
).Бег
Clean
не помог мне.Я решил проблему, очистив
obj
папку перед сборкой (сборка проекта в любом случае не займет много времени).Я выгрузил проект и добавил следующее в BeforeBuild Target
Надеюсь это поможет
источник
«Использование раздела, зарегистрированного как allowDefinition =« MachineToApplication », выходит за пределы уровня приложения. Ошибка. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS».
У меня была эта проблема в VS.NET. Оказалось, что когда я настраивал некоторые преобразования конфигурации, я по ошибке установил свойство файла Web.config «Копировать всегда». Я обычно устанавливаю для моих файлов преобразования значение «Копировать всегда», но оставляю корневой файл web.config как «Не копировать».
Будьте внимательны, поскольку изменение свойств web.config также изменяет все вложенные преобразования.
Итак, чтобы исправить:
1) Измените web.config на «Не копировать»
2) При желании, если вы используете конфигурационные преобразования, установите для них значение «Копировать всегда»
3) Удалите папки obj и bin из решения (они могут не отображаться, поэтому выберите узел проекта в обозревателе решений и нажмите кнопку на панели инструментов «Показать все файлы»).
4) Опубликовать
Работал на меня.
источник
Я столкнулся с этой ошибкой только во время публикации приложения.
Свойства файлов web.config (и преобразований) были установлены следующим образом:
Build Action - None
Copy to Output - Always
,Решением было изменить настройки на:
Build Action - Content
Copy to Output - Do not Copy
источник
У меня также была эта проблема, и она возникла после того, как я использовал Мастер публикации для публикации своего сайта в Интернете.
После долгих размышлений я наткнулся на этот отчет об ошибке на веб-сайте Connect: https://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level
Ответ MS ответил, а также объяснил, почему это было проблемой, которая возникла при публикации, он также включил временный обходной путь, который исправил проблему для меня.
источник
Удалите и создайте виртуальный каталог снова. Щелкните правой кнопкой мыши и преобразуйте виртуальный каталог в « Приложение ».
источник
Щелкните
Web.config
файл в обозревателе решений, щелкните правой кнопкой мыши «Свойства» и выберите «Копировать в выходной каталог: не копировать».источник
Для меня причина была в том, что папка obj находилась в папке веб-сайта, и после создания различных конфигураций появилось несколько файлов web.config. Я решил проблему под vs2012, переместив папку obj с веб-сайта. Для этого я добавил вручную (в блокноте) $ (SolutionDir) \ Obj \ $ (Configuration) к каждой конфигурации в файле проекта веб-сайта.
источник
У меня была такая же проблема, когда я публиковал сайт, если я строю сайт, у меня не возникает проблем, но при публикации я получаю эту ужасную ошибку:
Я перепробовал все, что было сказано здесь, в этом посте, но мне было просто создать новый профиль публикации, точно такой же, как тот, который я использовал, и который работает хорошо, не получаю ошибку с новым профилем, но делать со старым. Не уверен, в чем разница, но, по крайней мере, я могу опубликовать свой проект MVC.
Надеюсь, это кому-нибудь поможет !!
источник
Вот еще одна причина - если вы скопируете все свое веб-приложение в одну из его собственных подпапок, вы получите эту ошибку. Мне удалось сделать это на старом сайте при копировании с одного компьютера на другой - меня просто попросили посмотреть сайт после 2-х летнего перерыва и произошла ошибка. Потребовалось немало времени для выяснения - у меня не было нескольких конфигурационных файлов.
источник
У меня была эта проблема, и она была решена путем очистки моего решения от старых сборок и т. Д.
от vs: Build> Чистое решение
затем восстановить.
источник
Пуск в Windows -> открыть Сайты -> IIS -> щелкните правой кнопкой мыши по своему сайту -> Управление веб-сайтом -> Расширенные настройки -> выберите Физический путь -> попробуйте выбрать подпапку, которая выбрана в данный момент.
логика заключается в том, что файл веб-конфигурации внутри подпапки пытается внести изменения, и это запрещено, это должна быть выбранная папка: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
источник
Я также получаю эту ошибку, когда пытаюсь развернуть суб-сайт на сайте.
Решение:
<authentication mode="None" />
Если есть другие вопросы, не стесняйтесь пинговать меня, может быть, я найду, чтобы помочь.
источник
Я получил эту ошибку на localhost в Visual Studio 2017, и простой перезапуск Visual Studio устранил проблему.
Я понимаю, что эта проблема также может быть вызвана наличием более одного web.config; например, в подпапке. если у вас есть несколько файлов web.config специально для другого приложения: убедитесь, что каталог не рассматривается как виртуальный каталог.
источник
Убедитесь, что вы не попали в ловушку неправильного доступа к вашему локальному сайту через localchost / mysite.test, который должен быть mysite.test, который выдаст вам эту ошибку.
Когда вы заходите на свой сайт как localhost / dir_name, в этом случае ваш web.conf падает ниже корневого уровня и, следовательно, эта ошибка.
источник
Я выполнял миграцию приложений, и в нем было несколько приложений (несколько web.configs) ... я просто зашел в IIS, затем щелкнул правой кнопкой мыши на подпапках, затем "Преобразовать в приложение", и это сработало.
источник
Я получил эту ошибку иначе, чем все остальные:
Я перешел с vs2010 с проектом веб-развертывания на vs2012 и новый профиль веб-публикации.
Я создал новый проект веб-публикации в vs2012 для публикации в файловой системе (у нас есть отдельный сборщик инсталляторов, это коммерческое приложение), и я публиковал в папке, которая была в существующем веб-проекте, который связан с IIS.
Это вызвало ошибку во время публикации, которая сначала озадачила меня, потому что я публиковал в файловой системе, а не в IIS (я думал).
Решением было изменить публикацию в папке за пределами веб-проекта.
источник
Это было нормально,
localhost
но когда я опубликовал релиз на сервере, я запустил ту же ошибку для нескольких страниц. Затем я очистил решение и перестроил и опубликовал, все было исправлено.источник
Иногда простой ответ является лучшим. У меня было два файла web.config в моем проекте. На основном уровне я должен был внести изменения, чтобы справиться с моим тайм-аутом сеанса (который вызвал эту проблему). У меня был отдельный файл конфигурации в моей директории Razor Views, в котором были настройки для Razor и его представлений. Я добавил там раздел (не на уровне приложения!). Не осознавая, что у меня есть два отдельных файла web.config, я попробовал все, кроме поиска очевидного.
источник
моей ошибкой было случайное копирование при вставке файла web.config в другую папку на веб-сервере
источник
Я получил эту ошибку, когда забыл преобразовать опубликованный проект в приложение в IIS.
источник