2014-05-14 3 views
0

이상한 이유로 aspnet_regsql 명령은 일부만 생성하고 일부 데이터베이스는 멤버십 데이터베이스에 생성하지 않습니다. 예를 들어 dbo.Users, dbo.Roles, dbo.Profile 등은 생성하지 않습니다. 사실 17 개의 테이블 중 11 개만 생성합니다. 다른 스위치를 사용하여 명령 프롬프트에서 실행 해 보았습니다. 게다가 관리자로도 실행했습니다. 나은 것없는. 아무도 내가 여기서 뭘 놓쳤는 지 알아?aspnet_regsql이 모든 테이블을 생성하지 않음

이것은 ASP.NET 4.0 + SQL Server 2008 R2 Express입니다.

+0

실행중인 디렉토리는 무엇입니까? – TrevorBrooks

+0

@TrevorBrooks : C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 – dotNET

답변

0

오른쪽. 긴 하루의 노력 끝에이 사실을 알게되었습니다. 다른 사람이 그것을 필요로하는 경우 여기에 요약입니다 :

  1. ASP.NET 4.0 X는 회원, 역할, 프로파일 또는 sessionState의 될 수있는 다른 네임 스페이스 System.Web.Providers.DefaultXProvider에있는 업체의 새로운 집합이 포함되어 있습니다. ASP.NET 4.0 이상을 타겟팅하는 경우에는 web.config에서 실제로이 값을 사용해야합니다. NuGet을 통해 Microsoft.AspNet.Providers.Core 패키지를 검색하면 이러한 공급자를 다운로드 할 수 있습니다.

  2. 새 공급자는 테이블 이름에 "aspnet_"접두사를 사용하지 않습니다. 따라서 이전 버전의 dbo.aspnet_Roles은 이제 dbo.Roles 등입니다. 새 공급자는 6 개의 테이블 만 사용합니다. 필자는 개발 컴퓨터에서 이전 및 새 공급자를 통해 테이블을 잘못 만든 것이므로 프로덕션 서버에서 일부 테이블이 누락되었다고 생각한 것입니다.

  3. aspnet_regsql을 데이터베이스에서 명시 적으로 실행할 필요는 없습니다. GetUser()과 같이 처음으로 멤버십 호출을 통해 데이터베이스에 액세스하면 제공 업체가 필요하지 않은 테이블을 자동으로 생성합니다.

희망이 있으면 길가에 도움이되기를 바랍니다.

관련 문제