8

After adding the assebly of System.Data.Entity to my web config I got this error: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

I have deleted the obj and bin folders, I removed the line authentication="windows", tried to reopen as some has said it worked, I have checked that there is only 1 web.config within the main folder (Entity Framework - Folder for forms, model, DAL and BLL)...

What other reasons is there that this will happen? I searched everywhere and it's basically the above reasons I found....

This is my web.config if it makes a difference:

    <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>

What can I do to solve this?

4

3 に答える 3

23

基本的に、このエラーは、サブフォルダーの 1 つに web.config ファイルがあり、そこに含まれるべきではない構成要素が含まれていることを意味します。これはルート/唯一の Web 構成ファイルですか? そうでない場合は、それらも投稿していただけますか?

また、ばかげているように聞こえますが、IDE で Web サイト自体を開いていることを再確認します (親フォルダーを誤って開いていないこと)。正しいディレクトリにありませんでした。

これがどのように機能するかを視覚化するのに役立つ、ASP 用にweb.config階層がどのように設定されているかについての適切な説明を次に示します。

于 2013-04-24T16:26:09.500 に答える
0

Chris Noreikis の答えは実際には正しいです。しかし、重要な詳細が欠けています。何らかの理由で、最初に作成されたものとは異なる VS バージョンでプロジェクト/ソリューションを開くと、VS は移行を試みます。この移行中に、VS は "backup" または "backup_{#}" というフォルダーを作成することがあります。この移行が強制する保留中の変更を元に戻しても、これらのディレクトリは残ります。

これらのディレクトリの存在は、場合によっては (私のように) このエラーの原因です。これらのディレクトリを削除すると、問題が解消されます。

これにより、私がこの問題で失った数え切れないほどの時間を誰かが節約できることを願っています.

于 2015-10-06T18:33:22.407 に答える