2011-11-14 3 views
1

지난 주까지 SQL Server 2008 R2 이외의 버전으로 개발했으며 ASP.NET MVC 웹 응용 프로그램은 Azure Compute 에뮬레이터에서 제대로 작동했습니다. 실행 중에 데이터베이스 연결을 설정합니다.Azure Compute Emulator가 SQL Server 2008 R2로 업그레이드 한 후 데이터베이스에 연결할 수 없습니다.

SQL Server 2008 R2로 전환 한 후 (이전에 R2 이외의 버전을 제거한 경우) Compute Emulator에서 실행할 때 내 웹 응용 프로그램을 더 이상 데이터베이스에 연결할 수 없습니다.

흥미로운 점 : Azure Compute Emulator 외부에서 응용 프로그램을 시작하면 작동합니다!

예외 :

System.Data.SqlClient.SqlException 사용자 코드 메시지로 처리되지 않은했다 = 수 없습니다 로그인에서 요청한 데이터베이스 "X". 로그인에 실패했습니다. 'NT AUTHORITY \ NETWORK SERVICE'사용자가 로그인하지 못했습니다.

아이디어가 있으십니까? 감사!

답변

4

연결 문자열이 "Integrated Security = True"(또는 SSPI)와 같아 보입니다. 새 R2 설치가 아닌 동안 기존 서버가 "Netword Service"사용자에 대한 대상 DataBase에 대한 액세스 권한을 갖도록 구성되었습니다.

또한 Compute Emulator에서 앱을 실행하면 IIS를 사용하여 웹 역할, 즉 기본 앱 풀 ID (네트워크 서비스)를 실행합니다. 그러나 Cloud Project (Compute Emulator)없이 응용 프로그램을 실행하면 Visual Studio에 사용되는 계정 (사용자 계정의 상승 된 버전을 추측)에서 실행되는 Casini (AKA 웹 개발 서버)를 사용합니다. 또한 사용자 계정은 데이터베이스에 대한 액세스 권한을 가지기 때문에 응용 프로그램에도 액세스 할 수 있습니다.

"통합 보안"연결 문자열을 삭제하고 Windows Azure 응용 프로그램을 개발할 때 SQL Server 사용자가 클라우드 배포를 대상으로 사용하는 것이 좋습니다. SQL Azure SQL Server Authenticatin/Authorization 만 지원합니다.

+0

당신이 완전히 옳다, 고마워. – ceran

0

동일한 문제가 있었지만 web.config의 연결 문자열에서 "Integrated Security = True"를 제거한 후 mvc-app도 Entity-Framework 오류로 인해 연결할 수 없었습니다.

하지만 다행히도 this 해결 방법이 마침내 내 문제를 해결했습니다!

관련 문제