2010-07-06 5 views
0
에 연결하는 데 실패

I 표준 SqlRoleProvider를 사용하여 역할에 대한 다음과 같은 설정을 가지고 있지만 제가하려고 할 때 오류가 발생하고 wweb 사이트 관리 도구의 보안 페이지를 엽니 다SqlRoleProvider는 DB

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 
    <providers> 
     <remove name="AspNetSqlRoleProvider"/> 
     <add name="AspNetSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider" 
      connectionStringName="PoyntingInstallationConnectionString" 
      applicationName="/" /> 
    </providers> 
    </roleManager> 

DB를이있다 모든 역할 테이블 등

+1

무엇이 오류입니까? – Jeroen

+0

@ Jeroen, 오류 메시지는별로 도움이되지 않습니다 : "SQL Server 데이터베이스에 연결할 수 없습니다." – ProfK

+0

올바른 연결 고리를보고 있습니까? 첫 번째 연결 문자열은 LocalSqlServer이며 web.config에는 나타나지 않지만 거기에 있습니다. 그렇다면 비즈니스 데이터 액세스에서 어떻게 연결되는지 확인하십시오. – Jeroen

답변

1

PoyntingInstallationConnectionString이 web.config에 있고 올바르게 구성되어 있고 테이블이있는 데이터베이스를 가리키고 있는지 확인하십시오.

역할은 데이터베이스 역할이 아닌 aspnet_Roles 테이블의 항목입니다. 기본 역할이 없기 때문에 처음 스크립트를 실행할 때 테이블이 비어 있어야합니다.

수정 : 인증 DB를 만든 방법에 대한 자세한 정보를 제공 할 수 있습니까? 나는. aspnet_regsql 도구를 직접 실행 했습니까? 아니면 스크립트를 별도로 생성하여 실행 했습니까?

편집 2 : aspnet_regsql 도구는 실행하기 쉽습니다.이 도구는 .NET Framework v2.0 폴더에 있습니다. (기본 위치는 C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727)

명령 줄에서 실행하는 데 사용할 수있는 매개 변수가 많이 있거나 매개 변수없이 실행하면 마법사가 단계별로 안내합니다. 마법사를 사용하면 멤버십 기능을 사용하지 않더라도 모든 멤버 자격 공급자 기능 (프로필, 개인 설정, 웹 이벤트 ...)에 대한 지원을받을 수 있습니다.

나는 그것을 실행 한 다음 결과를 기존 데이터베이스와 비교하는 것이 좋습니다. 누군가가 도구를 실행 한 다음 테이블에 다른 항목이 필요하다는 것을 알지 못하고 다른 데이터베이스로 테이블을 복사 했습니까? 난 그냥 명령 줄과 마법사에서 모두 도구를 실행 해봤는데, 그것은 모든 역할, procs 등을 생성했습니다.

제대로 실행하면 테이블 (적어도 6), 저장 프로 시저가 있어야합니다 (몇 십여 명은 35 명), DB 역할 (최소 6 명)은 aspnet_으로 시작하고, 뷰 수 (적어도 5 개)는 vw_aspnet_으로 시작합니다. 이 중 일부가 누락 된 경우 공급자가 작동하지 않습니다.

일반적으로 명령 줄에서 실행하여 멤버십과 역할 항목 만 가져옵니다. 그것은 소음을 꽤 줄이거 나, 위의 숫자가 약간 희미한 이유이기도합니다. :)

+0

표준 비즈니스 데이터 액세스에는 연결이 제대로 작동합니다. 내가 읽은 여러 출처는 DB 역할에 대해서도 이야기합니다. 웹 인증이 아니라 제공자 자체를위한 것입니다. – ProfK

+1

@ProfK - 네가 무슨 말하는지 알 겠어. 네, 공급자에게 필요한 DB 역할 등이 있습니다. 내 편집을 참조하십시오. – GalacticCowboy

+0

제 동료는 방금 스크립트를 생성하지 않고이 도구를 사용했습니다. – ProfK

관련 문제