0

응용 프로그램을 로컬로 (localhost) 실행 중이며 이미 등록 했으므로 제대로 로그인 한 다음 내 응용 프로그램의 모든 페이지를 정기적으로 탐색 할 수 있습니다. 그런 다음 로그 아웃하지 않고 IIS를 닫습니다. 그러나 IIS Express를 다시 시작하고 Visual Studio에서 내 응용 프로그램을 다시 디버깅 할 때 브라우저에 다음 오류가 표시됩니다. "/ '응용 프로그램의 서버 오류 예외 정보 : System.Data.SqlClient.SqlException : 로그인에 실패했습니다. 사용자 'xxx'. " 여기서 'xxx'는 sqlserver의 관리자 이름입니다. 따라서 제대로 이해한다면 이전 방문에서 로그 아웃하지 않았으므로 SQL Server 관리자 자격 증명으로 로그인하려고 시도합니다.ASP.NET MVC 4 C# - 기본 SimpleMembership을 사용하는 인터넷 응용 프로그램 템플릿, 오류 : System.Data.SqlClient.SqlException : 사용자 xxx에 대한 로그인에 실패했습니다.

또 다른 것은 다른 브라우저에서 내 응용 프로그램을 실행하면 이미 로그인 한 사용자가 없으면 응용 프로그램을 표시하므로 문제가되지 않습니다. 그런 다음이 브라우저 (두 번째)에 동일한 사용자 이름으로 로그인합니다. 나는 첫 번째 브라우저에서 (IIS Express를 재시작하기 전에) 수행했고 첫 번째 브라우저를 새로 고침하고 다시 작업하기 시작했습니다 (IIS Express를 다시 시작하기 전에 내 첫 번째 접근 방식의 사용자 이름으로 로그인했습니다).

또한 URL에 localhost 대신 ip를 사용하면이 문제가 나타나지 않습니다.

최종 메모, 나는 ASP.NET과 일반 네트워킹 및 서버 측 웹 응용 프로그램에 익숙하지 않습니다. 나는 윈도우 8, 비주얼 스튜디오 2012, SQL 서버 2012을 사용하고

가, 결국

답변

1

을 표현 IIS, 내 문제의 해결책을 발견했다. 이는 기본 연결 데이터베이스 (단순 멤버십)의 초기화와 관련이 있습니다.

정확하게 말하면 "WebSecurity.InitializeDatabaseConnection ("DefaultConnection ","UserProfile ","UserId ","UserName ", autoCreateTables : true) 가능한 한 빨리 초기화가 수행되도록하려면 필터 -> InitializeSimpleMembershipAttribute.cs를 Global.asax로 변경하십시오.

+0

해당 줄을 이동하고 우려를 분산시키는 대신이 줄을 App_Start \ FilterConfig.cs에 추가 할 수도 있습니다. filters.Add (new InitializeSimpleMembershipAttribute()); 그리고 Voilà! –