문제

로컬 DB를 사용하여 정보를 저장하는 MVC 4 인트라넷 응용 프로그램을 구축했습니다. 이제 서버 항목에 배포하려는 것이 데이터베이스에 저장되지 않습니다. 나는 운이없이 내가 생각할 수있는 모든 것을 시도했습니다.

응용 프로그램에 IIS의 로컬 인스턴스 대신 SQL 데이터베이스를 사용하도록 지시하는 방법이 있습니까?

이것은 내 web.config의 연결 문자열입니다

- 편집 : 아래에 포맷 된 코드가 있으므로 질문에 표시됩니다. -

<add name="MyCalendarConnectionString" connectionString="Data Source=DST09119\SQLEXPRESS;Initial Catalog=MyCalendar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="SampleConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Sample.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
도움이 되었습니까?

해결책

이것에 관한 두 가지 방법 :

  1. 파생 된 후 연결 문자열의 이름을 지정하십시오 DbContext 클래스 (예 : 당신의 경우 DbContext ~이다 XyzEntities, 그런 다음 Conn String의 이름을 지정하십시오 XyzEntities <add name="XyzEntities" connectionString"..... />

  2. 연결 문자열의 이름을 기본 생성자로 전달합니다. DbContext. 아래와 같은 생성자를 사용하려고합니다.

    public class XyzEntities : DbContext
    {
        public XyzEntities( string nameOrConnectionString ) 
            : base( nameOrConnectionString )
        {
        }
    }
    
    // usage
    var dbContext = new DerivedDbContext( "MyCalendarConnectionString" );
    

업데이트:

SQL Server Express 인스턴스에 연결할 수없는 경우 사용 때문입니다. Integrated Security=True - 앱 풀의 ID를 데이터베이스에 액세스 할 수있는 사용자에게 설정하지 않으면 연결이 거부됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top