배경 : 코드를 사용하여 기본 엔티티 프레임 워크 저장소 패턴을 만들었습니다. 그런 다음 테스트 프로젝트를 만들었고 첫 번째 단위 테스트는 데이터베이스에 대한 기본 저장소 호출을 테스트하는 것이 었습니다. 이상하게도, 나는 엔티티 프레임 워크가 내 사용자 \ myusername 디렉토리에 데이터베이스를 만들고 있다는 것을 알았다!Visual Studio Web Config - 연결 문자열에서 SQL 사용자 이름 암호를 무시합니까?
약간의 연구 끝에 나는 정의 된 사용자 이름과 암호로 SSMS를 사용하여 약간의 테스트를위한 데이터베이스를 만드는 것이 가장 좋습니다. 이 작업을 완료하고 VS 2012 내 서버 탐색기에서 만든 연결을 테스트하여 성공했습니다. 내가 이름으로 연결 문자열을 사용하여 저장소를 인스턴스화해야 내 테스트를 실행할 때
그러나<connectionStrings>
<add name="TestConnection" connectionString="Data Source=.\SQLEXPRESS;User ID=DevSqlUser;Password=devsql;Initial Catalog=TestDatabase;MultipleActiveResultSets=True;Integrated Security=False;" providerName="System.Data.SqlClient" />
</connectionStrings>
는 지금, 나는 내 Windows 자격 증명을 사용하는 이상한 예외가 : 내 연결 문자열은 그대로처럼 보인다! 왜 이러는거야? 나는 단서가 없다. 나는 나의 웹 설정에서 어떤 신원 도용도 필요가 없다.
System.Data.SqlClient.SqlException : 로그인 요청한 데이터베이스 "TestConnection"을 열 수 없습니다. 로그인에 실패했습니다. '{domain} {myusername}'사용자가 로그인하지 못했습니다.
연결 문자열에 지정한 사용자 ID를 사용하지 않는 이유는 누구나 알고 계십니까?
DevSqlUser가 해당 데이터베이스의 사용자로 설정되어 있습니까? – valverij
해당 필드에 TestConnection을 공급 했습니까 ?? – Steve
DevSqlUser가 사용자로 설정되었습니다. 서버 탐색기에서 사용자 이름과 암호를 사용하여 새 연결을 만들 수 있습니다. DbContext에서 상속받은 컨텍스트에 대한 클래스 선언에 연결 문자열의 이름을 올바르게 입력합니다. 참고 : 연결 문자열에없는 사용자 이름이 예외로 표시됩니다 (내 Windows 인증). – slek84