2010-03-11 3 views
4

aspnet_regsql을 사용하여 데이터베이스를 만들었습니다. 데이터베이스가 SQL Server 2008에서 만들어졌지만 프로젝트의 데이터 폴더에 생성되지 않았습니다. 수동으로 폴더로 이동해야합니까? .
다음으로, 웹 사이트 관리 도구에서 제공자 섹션에 가서 테스트 버튼을 클릭하지 않았습니다. ASP.NET 웹 사이트 관리자 도구를 통해 Asp.Net 멤버십

Could not establish a connection to the database. If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider.

어쩌면 내가 회원 설정이나 연결 문자열처럼의 Web.config에서 뭔가를 설정해야

가 (또는 ASP.NET 웹 사이트 관리자 도구가 나를 위해 이러한 설정을 작성해야합니다) :

나는 오류가있어?

업데이트 :
아마도 SQL 서버 2008을 완전 사용하고 표현하지 않기 때문에 발생합니까?

업데이트 2 : 나는 연

웹 사이트 관리 도구에서 내 ASPNETDB 데이터베이스에 회원 섹션과 연결 문자열을 설정 한 후 보안 -> 보안 설정 때문에 마법사> 나는이있어 역할을 (4 단계)를 정의 오류 :

오류가 발생했습니다. 이전 페이지로 돌아가서 다시 시도하십시오.

The following message may help in diagnosing the problem: Unable to connect to SQL Server database. at System.Web.Administration.WebAdminPage.CallWebAdminHelperMethod(Boolean isMembership, String methodName, Object[] parameters, Type[] paramTypes) at ASP.security_wizard_wizardpermission_ascx.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

답변

0

열기 SQL 관리 스튜디오, 마스터 데이터베이스를 열고 새 쿼리를 만들어

sp_configure 'user instances enabled','1' 

이 실행 입력 한 다음

reconfigure 

를 입력하고 변경 사항이 걸릴 수 있도록도이 실행 효과. sp_configure에 대한 자세한 내용을 보려면 모든 구성을 나열하고 매개 변수없이 sp_configure를 실행하려면 http://msdn2.microsoft.com/en-us/library/ms188787.aspx을 읽어보십시오.

+0

오류가 발생합니다 : 'user instances enabled'구성 옵션이 존재하지 않거나 고급 옵션 일 수 있습니다. – luppi

+0

어떤 버전의 SQL Server를 사용하고 있습니까? 위는 익스프레스 에디션에서만 작동합니다. – bristows

+0

내가 추가 한 업데이트를 확인하십시오 ... SQL Server 2008 전체 ... 어떻게 정품 버전을 사용할 수 있습니까? – luppi

5

예, web.config에서 연결 문자열을 수정해야합니다. Web.config의에서

봐, 당신은 아마도 <membership> 요소에 다음과 같이 표시됩니다

<membership> 
    <providers> 
    <clear /> 
    <add connectionStringName="LocalSqlServer" 
     name="AspNetSqlMembershipProvider" 
     [...] 
     type="System.Web.Security.SqlMembershipProvider, 
       System.Web, 
       Version=2.0.0.0, 
       Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a" /> 
    </providers> 
</membership> 

connectionStringName 속성은 "LocalSqlServer라는 연결 문자열에 대한 귀하의 <connectionStrings> 요소에보고 프레임 워크를 알려줍니다 "-이 설정은 .Net Frameworks 코어 구성 디렉토리의 Machine.Config에서 상속 될 수 있으므로 web.config에 정의되어 있지 않을 수 있습니다.

연결 문자열의 새 이름을 선택하고 구성원, 역할 및 프로필 (사용중인 경우 모두) 공급자가 새 이름을 사용하도록 업데이트해야합니다. 나는 Web.config의에서 데이터베이스 로그인과 암호를 저장하는 동안 통합 보안을 권하고 싶습니다,하지만 YMMV (- 당신의 시스템에 맞게 값을 조정

<connectionStrings> 
    <remove name="LocalSqlServer" /> 
    <add name="MyConnectionString" 
     connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

을 :

그런 다음 <connectionStrings> 요소에 다음이 예를 들어 내 공유 호스트에서 통합 보안을 사용할 수 없으므로 사용자/패스 세부 정보를 제공해야합니다.

웹 사이트 관리 도구도 이러한 연결 문자열을 사용합니다.

편집

이 성공적으로 모든 로그인 한 코멘트에 반응 하는가? 또는 사용자를 만들었습니까? 난 당신이 연결 문자열을 구성하고 작동하는 것을 배제하고 싶습니까?

역할 공급자를 구성하고 켜 놓았습니까? 거기에 "connectionStringName"속성을 업데이트 했습니까?

이전처럼 machine.config는 로컬 SqlExpress 인스턴스를 가리키는 기본 역할 공급자 (연결 오류가 발생한 곳)를 지정합니다.

당신이 그것을해야 모든 작업을되도록 구성하면 :

<!-- Note enabled="true" - you need to turn this one on! --> 
<roleManager enabled="true"> 
    <providers> 
    <clear /> 
    <add connectionStringName="MyConnectionString" 
     [...] 
     type="System.Web.Security.SqlRoleProvider, 
       System.Web, 
       Version=2.0.0.0, 
       Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a" /> 
    </providers> 
</roleManager> 

은 생략 속성에 대한 자세한 내용은, 나는 문서를 권 해드립니다.

당신이 로그인/사용자를 생성 할 수 없었던 적이 있다면

, 나는 확인 것 :

  1. 연결 문자열 - 확인 이름 일치를 확인합니다 (data source가 서버 인스턴스와 일치하지 않도록주의 항상 컴퓨터의 이름 일 뿐이며 "MachineName \ SqlServer"와 같은 이름 일 수 있습니다).
  2. 통합 보안을 사용하는 경우 사이트에서 데이터베이스의 적절한 권한으로 실행되는 계정을 지정해야합니다. 데이터베이스에 aspnet_으로 시작하는 여러 가지 역할이 있고, 등록 양식이있는 경우 필요한 사용자를 만들 수 있으려면 aspnet_XXXX_FullAccess 역할 (구성원, 개인 설정, 프로필 및 역할에 각각 하나씩)에 계정을 추가해야합니다. (당신이

    같은 위의 오류가 표시되면 "Could not establish a connection to the database. If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider을.")

+0

web.config에 섹션이 없으므로 수동으로 만들면 작동합니다. 내 질문 : 1) web.config에서 자동으로 설정을 생성하는 옵션이 있습니까? 아니면 수동으로 만 생성합니까? 2) SQL Server 2008의 전체 로컬 데이터베이스 파일과 함께 데이터 폴더를 사용할 수 있습니까? – luppi

+0

업데이트 2를 참조하십시오. – luppi

+0

응답이 늦어서 죄송합니다. 하루 종일 회의 중이 셨습니다. –

0

귀하의 웹 사이트에 적절한 회원 통합을위한 다음 단계를 따르십시오.

1 단계 :

실행 C에서 aspnet_regsql.exe 유틸리티 : \ WINDOWS \ Microsoft.NET 컴퓨터에 \ Framework \ v2.0.50727 폴더. aspnet_regsql.exe 유틸리티를 선택하거나 두 번 클릭하면 아래와 같은 마법사가 열립니다. 위 화면에서 다음 버튼을 선택

enter image description here

당신이 응용 프로그램 서비스에 대한 SQL Server를 구성하거나 기존 데이터베이스에서 응용 프로그램 서비스 정보를 제거 할 수 있습니다 다음 창을 엽니 다.

2 단계 : 응용 프로그램 서비스의 라디오 버튼에 대한

구성을 선택 SQL Server에서 새 데이터베이스를 설치하고 다음 버튼을 선택합니다.

enter image description here

3 단계

아래와 같이 귀하의 SQL Express 서버 이름을 입력합니다. 응용 프로그램 서비스 데이터베이스 이름을 원하는 이름 (기본적으로 aspnetdb)으로 변경할 수 있습니다 (또는 사용자 이름, 암호, 각 데이터베이스 이름이 필요함)

ASPNETServices

에 데이터베이스 enter image description here

4 단계 :

다음을 선택 버튼 설정 (아래 이미지 참조) 설치와 더 나아가 다음 버튼을 선택 올바른지 확인합니다. 위 화면에

enter image description here

5 단계

선택 다음 버튼을 ASP.NET.Finally 보도 마침에 대한 응용 프로그램 서비스 데이터베이스를 성공적으로 설치 한 후 다음과 같이 확인 창으로 이동합니다.

enter image description here

6 단계

당신은 당신의 ASP.NET 응용 프로그램 내에서 사용하기 ASPNET 서비스 데이터베이스가 준비 설치 볼 수

이이 나는 비슷한 문제가 있었어요 enter image description here

0

내 처음 asp.net 회원으로 일했다. <roleManager Enabled="False" />을 설정하면 사용자를 생성 할 수 있습니다.

나는 여기서 추측하고있다. 그러나 나는 AspNetSqlRoleProvider에 대한 web.config의 추가 공급자에 대해 역할 관리 정보에 액세스하도록 설정된 사용자와 함께 asp 서비스 데이터베이스를 가리키는 연결 문자열을 제공한다고 생각한다. SQL 측 ("이 사용자가 소유 한 스키마"및 "데이터베이스 역할 구성원"에 대한 SQL 사용자의 속성보기)을 사용하면 도구가 DB에 올바르게 들어갈 수 있습니다.

당신은 당신의 SQL Server에서 Windows 인증 또는 SQL 인증을 사용하고 있습니까?

PS -

은 내가 더 읽고 Zhaph의 답변을 이해하고, 더 나는 그것을 좋아한다. 그는 AspNetSqlRoleProvider 요소에 대한 msdn 스키마에 대한 링크를 제공했습니다. Microsoft에서 문서가 존재하지 않는다고 속지 말고 "다른 버전"드롭 다운에서 적절한 버전을 선택하십시오. 모두 사용자를 계속 편집 및/관리 역할을 추가로 저를 허용 업데이트

는 사실 내가 쓰고 있었는지 테스트하기 전에 여기 게시에 나쁜 일을했다,하지만 난 끝까지과 추가하여 Web.config의에 다음 않았다 .앞서 언급 한 바와 같이 당신이 <identity impersonate="true" userName="windowsUser" password="winUsrPassword" />와 함께 integrated security=true을 사용하지 않는

<roleManager enabled="true"> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="MyConnectionString"/> 
    </providers> 
</roleManager> 

, 내 연결 문자열에 지정된 사용자는 aspnet_Roles _... Access 속성뿐만 아니라 aspnet_Membership _... 액세스를 요구하는 경우 창문에 사용자는 이러한 속성이 필요합니다.