2014-10-17 13 views
1

그래서 인터넷상의 모든 솔루션을 검색했습니다. 나는 많은 연구를했고 그것은 단지 더 많은 것을 잃어 버렸습니다. Azure 용 MVC 5 사이트를 만들고 있는데 역할 관리 설정에 문제가 있습니다.Roles 개체를 사용할 때 "저장된 프로 시저 'dbo.aspnet_CheckSchemaVersion'을 찾을 수 없습니다."

역할 개체를 사용할 때 "저장된 프로 시저 'dbo.aspnet_CheckSchemaVersion'을 찾을 수 없습니다"라는 오류가 발생합니다. "내가 this 링크를 찾았지만 Azure에 어떻게 적용되는지 모르겠습니다.

내 web.config 파일은 현재 이와 같이 설정되어 있습니다.

<add name="RoleDB" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Techdb3.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 

    <roleManager enabled="true"> 
    <providers> 
    <clear/> 
    <add connectionStringName="RoleDB" 
    name="AspNetSqlRoleProvider" 
    type="System.Web.Security.SqlRoleProvider" 
    applicationName="TechAndGames" /> 
    </providers> 
</roleManager> 
+0

그리고 웹 사이트 또는 웹 역할을 사용합니까?! 그리고 어떻게이 데이터베이스 (techdb3)를 초기화 했습니까? – astaykov

+0

웹 사이트와 웹 사이트의 역할을 비교할 수 없다고 생각합니다. 데이터베이스는 코드를 먼저 사용하고 Azure MS SQL 서버에서 간단하게 가리 킵니다. –

답변

2

는 MVC 5의 경우, 당신은 내가 생각의 roleManager 태그를 제거해야합니다. 내 최신 MVC 5 응용 프로그램에서 <roleManager>을 사용하고 있었고 정확히 같은 오류가 발생했습니다. 내가 그것을 제거하자마자 오류가 사라졌습니다. MVC는 다른 역할 관리 방식을 사용하기 때문에 이것이라고 생각합니다.

다른 몇 가지 사항은 데이터베이스에 적절한 테이블 설정이되어 있는지 확인하십시오. 이들은 당신이 필요합니다 테이블입니다 :

  • _MigrationHistory
  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUsers

당신은이 모든 필요 의존하지 않을 수 있습니다 당신이하는 일에. 이러한 설정을 제대로 수행하기 위해 MVC 5 템플릿을 사용하여 새 프로젝트를 만들었고 (2) 프로젝트를 로컬에서 실행했으며 (3) 사이트의 새 사용자 등록 과정을 거쳤으며 (4) 내 로컬에서 보았습니다. SQL Server (LocalDb) \ v11.0 그리고 위에서 언급 한 모든 테이블이있는 데이터베이스를 만들었습니다. 그런 다음이 테이블을 스크립팅하고 실제 데이터베이스에 대해 스크립트를 실행했습니다.

그런 다음 애플리케이션에서 User으로 전화를 걸어 User.IsInRole("someRole");과 같은 메서드에 액세스 할 수 있어야합니다.

+1

이것이 내 발견을 업데이트하는 것을 잊어 버린 것은 내 문제라고 생각합니다. 예, 구성에 태그를 유지하면 서버가 필요한 모든 테이블을 작성하는 데 필요한 이전 버전의 "roleManger"로 되돌아 가려고합니다. –

+0

당신이 그것을 알아 낸 것을 기쁘게 생각합니다 :-) – joshmcode