зарегистрирован раздел как MachineToApplication allowDefinition='' вне уровня приложения
после добавления assebly системы.Данные.Entity to my web config я получил эту ошибку: Использование раздела, зарегистрированного как allowDefinition='MachineToApplication' за пределами уровня приложения, является ошибкой. Эта ошибка может быть вызвана виртуального каталога не настроен в IIS как приложение.
Я удалил папки obj и bin, я удалил строку authentication="windows", попытался снова открыть, поскольку некоторые сказали, что это сработало, я проверил, что есть только 1 web.конфиг в основной папке (Entity Framework-папка для форм, моделей, DAL и BLL)...
какие еще причины есть, что это произойдет? Я искал везде, и это в основном вышеуказанные причины, которые я нашел....
Это моя паутина.config, если это имеет значение:
<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="CStringVKB" connectionString="Data Source=.;Initial Catalog=VKB;Persist Security Info=True;User ID=websiteservice;Password=websiteservice" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" optimizeCompilations="true" targetFramework="4.0" >
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<!--<authentication mode="Windows">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>-->
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
что я могу сделать, чтобы решить эту проблему?
4 ответов
в основном, ошибка означает, что есть веб.конфигурационный файл в одной из ваших вложенных папок, которая имеет элемент конфигурации, который он не должен иметь. Это вы root / только файл веб-конфигурации? Если нет,не могли бы вы также отправить их?
кроме того, это звучит глупо, но я бы дважды проверил, что вы открываете сам сайт в своей IDE (и не ошибочно открываете родительскую папку), я видел, как люди проводят пару часов, пытаясь отладить эту же ошибку, когда все время они не в том каталоге.
вот хорошее объяснение о том, как в интернете.иерархия конфигурации настроена для ASP, которая поможет вам визуализировать, как это работает:http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
по-видимому, было две паутины.config в моем решении. Я использую MVC4, и под представлениями был другой конфигурационный файл, и я вносил изменения в неправильный файл. Исправлена помог мне.
но вы всегда можете изменить перенаправление/маршрут по умолчанию в глобальном.файл asax.
эта проблема чаще всего возникает при открытии веб-сайта в Visual Studio, но случайно открыть родительскую корневую папку. Например, представьте, что у вас сайт расположен по C:\MyProjects\Website1 папка website1 это корень сайта. При открытии этого веб - сайта из Visual Studio вас попросят указать корневую папку веб-сайта-необходимо выбрать папку Website1. Если вы случайно выбрали папку MyProjects, то веб.конфигурационный файл в папке Website1 теперь находится в одной из подпапок веб-сайта. Потому что эта паутина.файл конфигурации включает в себя элемент, среди других параметров уровня приложения, вы получите вышеуказанную ошибку.
исправление этой ошибки (в большинстве случаев) заключается в том, чтобы закрыть проект и снова открыть его из Visual Studio, убедившись, что вы выбрали соответствующую папку.
Счастливого Программирования!
Крис Noreikis является на самом деле правильным. Но упущена важная деталь. Если по какой-либо причине вы откроете проект/решение в другой версии VS, чем она была первоначально создана, VS попытается выполнить миграцию. Иногда во время этой миграции VS создает папку под названием "backup" или "backup_{#}". Даже если вы отмените ожидающие изменения эта миграция заставляет, эти каталоги остаются.
наличие этих каталогов в некоторых случаях (например mine) причина этой ошибки. Удаление этих каталогов устранит проблему.
Я надеюсь, что это спасет кого-то бесчисленные часы, которые я потерял на этой проблеме.