1. 실제 서버는 없고 .net2.0 + SQLserver 공간만 임대하고 SQL 데이터베이스 이름은 고정되어 있습니다.
2. 공간 제공자가 당사를 위해 데이터 소스를 설정하거나 귀하에게 aspnetdb 데이터베이스 권한을 부여하는 것은 불가능합니다.
3. 서버에 대한 WindowsMicrosoft.NetFrameworkv2.xConfig 권한이 없습니다.
위의 세 가지 사항을 알면 로컬에서 테스트한 프로젝트를 서버에 직접 전송하면 반드시 오류가 발생하게 됩니다(기본적으로 WindowsMicrosoft.NetFrameworkv2.xConfig를 호출하기 때문입니다). 해결책은 모든 aspnetdb 데이터베이스 콘텐츠를 원격 SQL 데이터베이스로 가져온 후 프로젝트의 web.config 데이터베이스 연결 문자열을 정의하는 것입니다.
웹.구성
<?xml version="1.0"?>
<!--
참고: 이 파일을 수동으로 편집하는 대신 다음을 사용할 수도 있습니다.
애플리케이션 설정을 구성하는 웹 관리 도구입니다. 당신은 사용할 수 있습니다
"웹사이트" -> "Asp.Net 구성" 옵션.
설정 및 주석의 전체 목록은 다음 위치에 있습니다.
machine.config.comments는 일반적으로 다음 위치에 있습니다.
WindowsMicrosoft.NetFrameworkv2.xConfig
-->
<구성 xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">
<connectionStrings>
<!--데이터베이스 연결 정의-->
<add name="DbName" ConnectionString="보안 정보 유지=False;server=127.0.0.1;database=aspnetdb;uid=sa;pwd=123;pooling=true"/>
</connectionStrings>
<앱 설정>
</appSettings>
<system.web>
<!--
ConnectionStringName 데이터베이스 연결입니다. web.config에서 설정해야 합니다.
활성화PasswordRetrieval 현재 멤버십 공급자가 사용자가 자신의 암호를 검색할 수 있도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.
활성화PasswordReset 사용자가 암호를 재설정할 수 있도록 현재 멤버십 공급자가 구성되어 있는지 여부를 나타내는 값을 가져옵니다.
requireQuestionAndAnswer 기본 멤버십 공급자가 사용자에게 암호 재설정 및 검색을 위해 암호 질문에 대답하도록 요구하는지 여부를 나타내는 값을 가져옵니다.
applicationName은 애플리케이션의 이름을 가져오거나 설정합니다.
requireUniqueEmail 사용자가 사용자를 생성할 때 고유한 이메일 주소 값을 제공해야 하는지 여부를 나타냅니다.
비밀번호 형식은 비밀번호가 멤버십 데이터 저장소에 저장되는 형식을 나타냅니다. 자세한 지침은 아래에 나와 있습니다.
maxInvalidPasswordAttempts 사용자가 멤버십에서 잠기기 전에 허용되는 잘못된 비밀번호 또는 잘못된 비밀번호 응답 시도 횟수를 가져옵니다.
minRequiredPasswordLength 비밀번호에 필요한 최소 길이를 가져옵니다.
minRequiredNonalphanumericCharacters 유효한 암호에 포함되어야 하는 특수 문자의 최소 수를 가져옵니다.
비밀번호AttemptWindow 멤버십 사용자가 잠기기 전에 허용되는 잘못된 비밀번호 또는 잘못된 비밀번호 응답 시도의 최대 횟수(분)를 가져옵니다.
PasswordFormat에 대한 자세한 설명
비밀번호가 저장되는 형식을 나타내는 속성입니다. 비밀번호는 일반 비밀번호, 암호화 비밀번호, 해시 비밀번호 형식으로 저장할 수 있습니다. 일반 비밀번호는 일반 텍스트로 저장되어 비밀번호 저장 및 검색 성능이 향상되지만 보안성이 떨어지며 데이터 소스의 보안이 손상될 때 쉽게 읽을 수 있습니다. 암호화된 비밀번호는 저장 시 암호화되며 비밀번호를 비교하거나 검색할 때 해독될 수 있습니다. 이러한 비밀번호는 저장 및 검색 중에 추가 처리가 필요하지만 더 안전하며 데이터 소스의 보안이 손상되면 쉽게 검색할 수 없습니다. 해시된 비밀번호는 데이터베이스에 저장될 때 단방향 해싱 알고리즘과 무작위로 생성된 솔트 값을 사용하여 해시됩니다. 비밀번호가 확인되면 비밀번호는 확인을 위해 데이터베이스의 솔트 값으로 해시됩니다. 해시된 비밀번호를 검색할 수 없습니다.
-->
<roleManager 활성화="true" />
<회원>
<공급자>
<remove name="AspNetSqlMembershipProvider"/>
<이름 추가="AspNetSqlMembershipProvider"
유형=" System.Web.Security.SqlMembershipProvider, System.Web, 버전=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
연결문자열이름="Db이름"
활성화PasswordRetrieval="false"
활성화PasswordReset="true"
requireQuestionAndAnswer="true"
애플리케이션이름="/"
requireUniqueEmail="false"
비밀번호 형식="해시됨"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
비밀번호AttemptWindow="10"
비밀번호강도RegularExpression="" />
</공급자>
</멤버십>
<!--
디버그 기호를 삽입하려면 컴파일 디버그="true"를 설정하세요.
컴파일된 페이지에서 하지만 이렇게 될 것이기 때문에
성능에 영향을 미치므로 개발 중에만 설정해야 합니다.
이 값.
비주얼 베이직 옵션:
strict="true"로 설정하면 모두 비활성화됩니다.
데이터 손실이 있는 유형 변환.
명시적="true"로 설정하면 모든 변수가 강제로 선언됩니다.
-->
<컴파일 디버그="true" strict="false" 명시적="true"/>
<페이지>
<네임스페이스>
<지우기/>
<네임스페이스 추가="시스템"/>
<namespace="System.Collections"/> 추가
<namespace="System.Collections.Specialized"/> 추가
<네임스페이스 추가="System.Configuration"/>
<네임스페이스 추가="System.Text"/>
<namespace="System.Text.RegularExpressions"/> 추가
<네임스페이스 추가="System.Web"/>
<네임스페이스 추가="System.Web.Caching"/>
<네임스페이스 추가="System.Web.SessionState"/>
<네임스페이스 추가="System.Web.Security"/>
<네임스페이스 추가="System.Web.Profile"/>
<네임스페이스 추가="System.Web.UI"/>
<네임스페이스 추가="System.Web.UI.WebControls"/>
<네임스페이스 추가="System.Web.UI.WebControls.WebParts"/>
<네임스페이스 추가="System.Web.UI.HtmlControls"/>
</네임스페이스>
</페이지>
<!--
<authentication> 섹션에서는 다음을 구성할 수 있습니다.
보안 인증 모드,
들어오는 사용자를 식별합니다.
-->
<인증 모드="양식" />
<!--
요청을 실행하는 동안 처리되지 않은 오류가 발생한 경우
해당 처리 단계는 <customErrors> 섹션을 통해 구성할 수 있습니다. 구체적으로,
개발자는 이 섹션을 구성할 수 있습니다.
표시할 HTML 오류 페이지
오류 스택 추적을 대체합니다.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403"redirect="NoAccess.htm" />
<error statusCode="404"redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
참고: 멤버십 노드에 대한 댓글이 재현되어 있는데 주소를 잊어버렸습니다.
http://lcx.cnblogs.com/archive/2006/06/29/438836.html