문제


1) 기본적으로 구성 요소에는 그 구성이 있습니다 ConnectionStringName 속성으로 설정되었습니다 LocalsqlServer, 그리고 내가 아는 한,이 속성은 요소 machine.config 파일.

a)이 연결 문자열이 데이터베이스를 의미한다고 가정합니다. aspnetdb.mdf?!

b) 이해합니다 aspnetdb.mdf 수동으로 멤버십 또는 프로필 데이터베이스를 작성하지 않는 경우 (전화로 aspnet_regsql ), 그러나 나는 여전히 구성 요소의 목적을 이해하지 못합니다. ConnectionStringName 속성으로 설정되었습니다 LocalsqlServer 세트? 즉,이 데이터베이스에 액세스해야 할 때와 이유는 무엇입니까?

c) 멤버십 데이터베이스를 수동으로 설정하면 어떻게됩니까? aspnet_regsql 따라서 사용하지 않습니다 aspnetdb.mdf? 구성 요소는 우리가 사용하지 않는다는 것을 어떻게 알 수 있습니까? aspnetdb.mdf 따라서 대신 우리가 만든 데이터베이스에 액세스하려고합니까?


2) 우리가 원한다면 LocalsqlServer 입력 machine.config 다른 데이터베이스 파일을 가리키면 다음을 수행 할 수 있습니다.

      <connectionStrings>
        <remove name="LocalSqlServer" />
        <add name=”LocalSqlServer” ...  />
      </connectionStrings>

나는 그 목적을 이해합니다 <remove> 요소는 이전에 선언 된 요소를 동일한 이름으로 취소하는 것이지만 위의 예에서는 이미 기존 연결의 속성을 변경했습니다. machine.config 같은 이름으로 두 가지 연결이 없으므로 왜 우리가 포함해야 했습니까? <remove> 요소?


고맙습니다

도움이 되었습니까?

해결책

로부터 MSDN의 ConnectionStrings 요소 기사:

HILD 구성 파일에 명확한 요소가 사용되지 않는 한 부모 구성 파일에 포함 된 연결 문자열은 상속됩니다. 다음 기본 ConnectionStrings 요소는 machine.config 파일에 구성됩니다. 코드를 복사하십시오

<connectionStrings>
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated
        Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User
        Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

따라서 구성 파일의 해당 섹션이 수정되지 않으면 해당 연결 문자열이 자동으로 있습니다.

다른 팁

사용 된 컨벤션은 동일한 과제를 달성하기 위해 선택 될 수있는 많은 사람들 중 하나이지만 당시 MS의 ASP.NET 팀에 있던 사람들은 실제로 "왜"라고 말할 수있는 유일한 사람들입니다. 사용된. 내 이해는 현재 구성의 목적은 초보자가 시작할 수 있도록 가능한 한 쉽게 만드는 것입니다. 즉, 일부 마법사를 실행하고, 미리 구성된 설정으로 데이터베이스를 자동으로 생성하고, 몇 가지 보안 컨트롤을 드래그 -N- 드롭으로 작업 할 것이 있습니다. 이것은 초보자를 위해 설계되었으므로 숙련 된 개발자는 조각이 어떻게 맞는지 파헤 치는 것이 간단하지 않기 때문에 지금과 동일한 질문 세트에 도달했습니다.

machine.config에서 알 수있는 것 중 하나는 모든 제공 업체 (멤버십, 역할, 프로필 등) 가이 LocalsQlServer Connection String 이름을 사용하여 초보자 시나리오를 다시 지원한다는 것입니다. 따라서 youur 자체 데이터베이스를 사용하려면 LocalsqlServer의 기본 정의를 제거하고 자신의 직접 정의해야합니다. 구성 파일 정의에는 대체 요소가 없으므로 논리적으로 동등한 제거/추가 시퀀스를 사용해야합니다. 연결 문자열을 변경하고 이름을 LocalSqlServer로 남겨두면 Machine.config의 모든 공급 업체가 DB를 가리 킵니다. 이를 통해 데이터베이스에 대한 기본 공급자 정의가 제공됩니다.

이제 제공자 정의를 사용자 정의하려면 자신의 Web.config에 추가하여 설정을 변경할 수 있습니다. 이 시점에서 LocalSQLServer를 사용자 정의 제공 업체 정의의 연결 문자열로 남겨 두거나 자신의 Connnection String을 만들고 사용자 정의 제공자 정의를 자신의 연결 문자열로 가리킬 수 있으며 더 이상 LocalsQlServer에 대해 걱정할 필요가 없습니다. web.config에서 localsqlserver를 제거하면 데이터베이스 문자열을 참조하는 자신의 Web.config에 사용자 정의 제공자 정의를 추가해야합니다.

도움이 되었기를 바랍니다,

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top