0

VS 2012에서는 인터넷 응용 프로그램 템플릿에서 시작하여 MVC 4 프로젝트를 새로 만든 다음 LocalDB 대신 SQL Server Express를 사용하도록 속성을 변경 한 다음 성공적으로 등록을 시도했습니다. 새로운 사용자.MVC 4 - 기본 SQL Server Express 데이터베이스 위치를 변경하는 방법

첫째, 프로젝트는 App_data 폴더에 자신의 회원 데이터베이스를 만들었지 만 배포 이유로 나는 데이터베이스 위치 변경을 원했습니다, 그래서 C:\MyDataC:\MyProject\App_Data\에서 데이터베이스 실제 파일을 이동하고 web.config 파일에서 관련 경로를 수정 . SQL Server Express 인스턴스에서 데이터베이스에 연결할 수 있는지 확인하기 위해 속성 보안 탭에서 전체 액세스 권한을 가진 사용자 계정을 추가 한 다음 SQL Server Management Studio에 해당 데이터를 성공적으로 표시했습니다.

이제 프로젝트를 실행하고 "로그인"링크를 클릭하면 디버거가 LazyInitializer.EnsureInitialized에서 멈추고 오류로 실패합니다. 오류 메시지의 내부 예외는 말한다 :

데이터베이스 'C : \ MyProject를 \ App_Data \ ASPNET-MyProject를-20121206123456.mdf'이미 이 존재합니다. 다른 데이터베이스 이름을 선택하십시오.
파일 첨부 할 수 없습니다 'C를 : \을 MyData \ ASPNET-MyProject를-20121206123456.mdf'내가 어떤 다른 데이터베이스 연결을 찾기 위해 프로젝트를 확인

데이터베이스 'ASPNET-MyProject를-20121206123456.mdf'로 아무것도 찾지 못했습니다.

서버 탐색기를 사용하여 데이터베이스 테이블 데이터를 볼 때 실제 데이터를 보려면 C:\MyData\ 폴더로 이동하면 표시되는 테이블 중 하나를 마우스 오른쪽 단추로 클릭 할 때 "데이터 표시"옵션을 찾을 수 없습니다. 파일 속성, 보안 탭에서 프로젝트를 실행할 때마다 전체 액세스 권한을 사용하는 계정이 제거되었음을 알았습니다. 브라우저가 다음 예외 텍스트를 표시

또한

:

The data provider. Net Framework requested was not found. It may not be installed. 

C : \ MyProject를 필터 InitializeSimpleMembershipAttribute.cs 맞추 \ \ : 42

Ligne 40 :     } 
Ligne 41 : 
Ligne 42 :      WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); 
Ligne 43 :     } 
Ligne 44 :     catch (Exception ex) 

답변

0

그것은 비주얼 스튜디오 2012과 같은 SQL Server 2012 Express 인스턴스를 인식하지 못하는 버그. Microsoft WebMatrix2를 다운로드하여 웹 사이트를로드하는 데 사용했으며 이동 된 멤버십 데이터베이스를 사용하여 성공적으로 로그인 할 수있었습니다.

이 버그로 인해 솔루션을 찾기 위해 2 일을 잃었습니다.

관련 문제