2

LocalDb에서 SQL Server Express로 이동할 때 이상한 오류가 발생합니다. 내가 컨텍스트 초기화에 CreateDatabaseIfNotExists에 시도 할 때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.

이 오류가 발생합니다 : 이것은 오류입니다.

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

그리고

마침내이 내 초기화이다 : 나는 global.asax에서 데이터베이스를 시작

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

: 여기

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

내 상황입니다 : 여기

내 연결 문자열입니다 코드 :

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를 사용할 때 문제가되었지만 내 데이터베이스에 연결할 수 없어서 코드에 어떤 문제가 있는지 알 수 없습니다. - 여전히 같은 오류가 발생 내가 Persist Security Info = True;Trusted_Connection=False;을 넣어

  1. : 여기

    이 문제를 해결하기 위해 내 시도이다.
  2. 나는 Database.SetInitializer<AlvinCMSMigrationDBContext>(null);을 변경하려하지만 존재하지 않을 경우 데이터베이스를 작성해야합니다, 그래서 이것은 다음과 같이 당신은 connection string 사용할 수있는 저

+0

당신이 관리자 권한이 다음과 같은 역할도 DBCreator 사용자와 시스템 관리자를 지정하고 존재하지 않는 경우 데이터베이스를 만들 수도 널 (null)의 초기화와 – 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"/>