2

LocalDbからSQL Server Expressに移行すると奇妙なエラーが発生します。これはエラーです:ASP.NET MVC 4 EF6がSQL Server Expressデータベースに接続できません

This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection.

私は、コンテキストの初期化にCreateDatabaseIfNotExistsしようとしたときに、このエラーが発生します。ここで

は私の接続文字列である:ここで

<add name="DefaultConnection" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=AlvinCMS;MultipleActiveResultSets=True;" 
    providerName="System.Data.SqlClient" /> 

は私のコンテキストです:

public class AlvinCMSMigrationDBContext : DbContext 
{ 
    public AlvinCMSMigrationDBContext() : base("DefaultConnection") 
    { 
     Database.SetInitializer<AlvinCMSMigrationDBContext>(new CreateDatabaseIfNotExists<AlvinCMSMigrationDBContext>()); 
    } 

私はglobal.asax上のデータベースを開始:

protected void Application_Start() 
{ 
    //Check And Init Database 
    Alvin_CMS.App_Start.DatabaseConfig.Initialize(); 

をそして最後に、これは私の初期化ですコード:

public static void Initialize() 
{ 
    Alvin_CMS.Models.AlvinCMSMigrationDBContext migrationDB = new Models.AlvinCMSMigrationDBContext(); 

    try 
    { 
     if (!migrationDB.Database.Exists()) 
     { 
      migrationDB.Database.Initialize(false); //ERROR HERE! 

      AlvinCMSExtension.Models.AccountDBContext accountDB = new AlvinCMSExtension.Models.AccountDBContext(); 
      accountDB.Database.Initialize(false); 

      SetDefaultValue(migrationDB); 
     } 

     migrationDB.Database.Initialize(false); 
    } 
    catch (Exception e) 
    { 
     migrationDB.Database.Delete(); 
     AlvinCMSExtension.Helper.Log(e); 
    } 
} 

私はLocalDbを使用すると問題がなかったので、私のコードに何が問題なのか分かりませんが、今はデータベースに接続できません。ここで

は、この問題を修正する私の試みです:

  1. 私はPersist Security Info = True;Trusted_Connection=False;を入れて - まだ同じエラーを生成します。

  2. 私はDatabase.SetInitializer<AlvinCMSMigrationDBContext>(null);を変更しようとしました。しかし、私は存在していない場合は、データベースを作成する必要があり、これは、以下のようにあなたがconnection string使用することができ、私

+0

あなたが接続に使用しているユーザーが管理者権限を持っている、以下の役割がのdbcreatorおよびシステム管理者とそれが存在しない場合は、データベースを作成することができさえヌルの初期化子で – Monah

+0

を試してみてください、このユーザーを割り当てるようにしてください。 Trusted_Connection = Falseは接続文字列から資格情報を削除しませんが、正しいものを指定しなかった可能性が高いので、Trusted_Connection = Trueを使用してみてください.Windows認証が使用されます。 – DevilSuichiro

答えて

2

の修正ではありません。

<add name="DefaultConnection" connectionString="Server=localhost; Database= 
AlvinCMS;Trusted_Connection=True;" providerName="System.Data.SqlClient" /> 
0

私の場合、「StoreMan」はデータベース名です。自分のものと交換してください。

<add name="StoreMan" providerName="System.Data.SqlClient" connectionString="Server=localhost; Database=StoreMan;Trusted_Connection=True;Integrated Security=True;MultipleActiveResultSets=True"/> 
関連する問題