1

Entity Framework를 사용하여 응용 프로그램을 개발하고 있습니다. 이 응용 프로그램에서 대상 데이터베이스는 두 명의 구성원이있는 SQL 2012 고 가용성 클러스터 서버입니다. 하나는 기본으로 구성되고 다른 하나는 보조 구성으로 구성됩니다.SQL 고 가용성 서버에 연결하는 엔터티 프레임 워크 연결 문자열

SQL Management Studio를 사용하여 클러스터에 연결하려고하면됩니다. 나는 질의와 모든 것을 할 수있다. 문제는 응용 프로그램과 연결하려고 할 때입니다. 이 메시지와 함께 예외가 발생합니다 : 더 확인

The target database ('UserDatabase') is in an availability group and is currently accessible for connections when the application intent is set to read only. For more information about application intent, see SQL Server Books Online. 

이 예외가 발생 엔티티 프레임 워크는 데이터베이스에 대한 연결을 열려고 할 때. 나는 문제가 내 연결 문자열의 경우 난 완벽 SQL Management Studio를 사용하여 동일한 자격 증명, 나는 궁금와 연결할 수 있습니다 알고 있기 때문에

data source=SQLCL01;initial catalog=UserDatabase;user id=test-user;password=##pass##;MultipleActiveResultSets=True 

: 여기

내가 사용하고있는 연결 문자열입니다. 비슷한 경험을 가진 사람이 있습니까?

업데이트 : SQLCL01은 청취자입니다. DB 인스턴스 이름은 SQLDB01입니다. & SQLDB02

답변

1

연결을 시도한 시점의 SQLCL01이 보조 역할로 실행되고 있다고 생각합니다. 보조 복제본에 연결하려면 AG가 읽을 수있는 보조 복제본 연결을 허용하도록 구성되어 있고 연결 문자열에 다음과 같이 추가하여 연결에 읽기 전용 의도가 명시되어야 함을 명심해야합니다 : ApplicationIntent = ReadOnly

'데이터 소스'에서 리스너 이름을 사용할 수 있습니다. 이것은 항상 현재 주를 가리키는 네트워크 이름입니다. 이것은 AG에서 설정해야합니다. 자세한 내용은 확인 : 사용 http://msdn.microsoft.com/en-us/library/hh213417.aspx

+0

사실, SQLCL01는 청취자가입니다. 데이터베이스 이름은 SQLDB01과 SQLDB02 모두이므로 리스너입니다. –

+0

ApplicationIntent를 연결 문자열에 추가하면 어떻게됩니까? –

+0

추가하는 방법 : ApplicationIntent = ReadOnly 응용 프로그램에 액세스 할 수 있지만 Entity Framework에서 쓰기도 사용하고 있으므로 다른 예외가 있습니다. –

0

시도 :

<b>server=tcp:</b>SQLCL01;initial catalog=UserDatabase;user id=test-user;password=##pass##;MultipleActiveResultSets=True