2017-05-24 11 views
0

MVC5アプリケーションの作成。何らかの理由でローカルのApp_Data \ ASPNETDB.MDF dbが作成されていますが、私のweb.configでは指定した唯一のdbはネットワーク上の全く異なるものですが、正常に動作しています。このdb(私はそれを削除する場合、再作成)?私はASPNETDB.MDFのために私の解決策を検索して....何も表示されませんので、それは、設定ファイルの任意のタイプでなどいないのですローカルApp_Data ASPNETDB.MDFが作成され続ける

私のweb.configファイルのconnectionStringsセクション....

<connectionStrings> 
    <remove name="ZZZ_SpringContext" /> 
    <add name="ZZZ_SpringContext" 
     connectionString="Data Source=mypc\sql2012;Initial Catalog=ZZZ_Spring;Integrated Security=True;MultipleActiveResultSets=True" 
    providerName="System.Data.SqlClient" /> 

</connectionStrings> 

***** UPDATE *****

もう一度データベースを削除しようとしました。次に私のweb.configで、私はrolemanagerの行をfalseに変更し、dbは現在再作成していません。それは私がdbを作成しているのを見るのに役立ちます。しかし、どうすればこの問題を回避できますか?ここにweb.configの行があります....

私のアプリが正しく動作するように、これを「true」に戻す必要がありました。

+0

たぶんASPNETアイデンティティ? Visual StudioまたはSSMSを使用してデータベースを開いたとき、どのテーブルが表示されますか? – maxbeaudoin

+0

@maxbeaudoin私はIDを使用していますが、すべてのテーブルはweb.configで定義されたdbにあります。私はASPNETDB.MDF dbの内容を見ることができませんでした。私は私のプロジェクトにそれを含め、オープンに行きました、そして、 "このdbファイルはSQL Serverの現在のインスタンスと互換性がありません。"私はそれを削除し、アプリを実行するたびに、それは再作成されます。 – WebDevGuy2

+0

web.configのconnectionStringsセクションを含めることはできますか? – maxbeaudoin

答えて

2

過去に私はASPNETDB.mdfファイルが既に削除されていても再作成するのとほぼ同じ問題がありました。これは、ASP.NETアイデンティティのインスタンスは、以下の行を持っているプロジェクト以外machine.configファイルを使用していることになります:

<connectionStrings> 
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

およびコンフィギュレーションファイルの最後に私がMembershipプロバイダの動作を制御するようだmembership要素、見つかった:

<system.web> 
    <membership> 
     <providers> 
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> 
     </providers> 
    </membership> 
    <profile> 
     <providers> 
      <add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </profile> 
    <roleManager> 
     <providers> 
      <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
      <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager> 
</system.web> 

connectionStringName="LocalSqlServer"は、前にconnectionStrings要素に示すように、ASPNETDB.mdfを参照しています。上記

<roleManager enabled="true"> 
    <providers> 
     <clear/> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
    </providers> 
</roleManager> 

線がASP.NETメンバーシッププロバイダは無効に現在のユーザ管理として有効であることを告げる:

次に、プロジェクト内のweb.configファイルに、この行はRoleManagerインスタンスが有効であるか否かを判断しますASP.NETアイデンティティの目的。

ASPNETDB.MDFデータベースが有効にされ& Membershipプロバイダサポートを存在されていない場合したがって、Membershipプロバイダは、Machine.configでデフォルト設定を使用して初期化し、自動的にデフォルトのテーブル定義を使用してASPNETDB.MDF、そのログファイルを生成します。そのDBの再作成を防止するために

は、<roleManager enabled="false">を変更するだけでなく、あなたは、web.configファイルにこれらのステップを使用することができます。

  1. 既存のクリアまたは事前に定義された接続文字列あなた自身を定義する前に。

    <connectionStrings> 
        <clear /> 
        <remove name=LocalSqlServer /> <== this is maybe optional 
        <add name="ZZZ_SpringContext" 
        connectionString="Data Source=mypc\sql2012;Initial Catalog=ZZZ_Spring;Integrated Security=True;MultipleActiveResultSets=True" 
        providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    
  2. モジュール定義のRoleManagerプロバイダを削除します。

    <modules> 
        <remove name="RoleManager" /> 
    </modules> 
    
  3. そうにコメントアウトすべてmembershipprofile & roleManager要素を必要に応じて。

  4. アカウントモデルコードにUsersContextクラスがある場合は、自分で定義した現在の接続文字列を指していることを確認してください。

    public class UsersContext : DbContext 
    { 
        public UsersContext() : base("ZZZ_SpringContext") 
        { 
        } 
    } 
    

関連問題:

How do I stop using ASPNETDB.MDF in LocalDB?(Webフォーム版)

関連する問題