2017-11-12 20 views
0

app.config 파일과 섞여 있습니다.구성 파일 구조

나는 설정 failed 얻을 수있는 것을 connectionStrings했다 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <connectionStrings> 
     <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 
     <add name="ProgrammingInCSharpConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=ProgrammingInCSharp;" /> 
    </connectionStrings> 
    </configSections> 
</configuration> 

문제가 <connectionStrings><connectionStrings> 외부에 배치 한 후 해결되었다 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections /> 
    <connectionStrings> 
     <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 
     <add name="ProgrammingInCSharpConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=ProgrammingInCSharp;" /> 
    </connectionStrings> 
</configuration> 

을하지만

<configSections> 
    <connectionStrings> 
     ... 
    </connectionStrings> 
</configSections> 
아래 패턴으로 많은 샘플을 발견

일부 c에서 작동 할 수 있습니다. ases? 일반적으로 구성 파일의 논리는 무엇이며 각 섹션에는 어떤 종류의 정보가있을 수 있습니까?

+0

기록을 위해 : 당신은'web.config'와'asp.net' 태그를 가지고있는 동안 당신은'app.config' 파일에 대해 이야기하고 있습니다. 두 분 중 어느 분이 이야기하고 계시나요? –

+1

다른 질문으로 이동 했으므로 여기에 답변 해 주시겠습니까? –

+0

app.config 용입니다. 그러나 일반적으로 web.config에 대해 알고 있으면 좋을 것입니다. – vico

답변

0

configSections 노드에는 구성 섹션 네임 스페이스 선언이 포함되어 있지만 네임 스페이스마다 다르지만 일반적으로 연결 문자열에는 사용되지 않습니다.

하지만

당신이 <connectionStrings> 때문에 작동하지 않을 수 있습니다 발견 된 패턴 아래 패턴으로 많은 샘플을 발견은 <configSections> 바로 아래에을 중첩 될 수 없습니다. <section> 아래에 연결 문자열 변수를 지정하고 서버 코드가 특정 네임 스페이스를 통해 연결 문자열 변수를 대상으로 지정하면이 작업을 수행 할 수 있습니다.

예 : 지금 변수 (필드)해야합니다 네임 스페이스 System.MyNameSpace 위의 예에서

<configuration> 
    <configSections> 
     <section name="section1" type="System.MyNameSpace" /> 
    </configSections> 
    <section1 connString="...conn.." /> 
</configuration> 

connString라고, 그래서 뒤에 코드에서 타겟팅 할 수 있습니다.

결론적으로 연결 문자열이 네임 스페이스별로없는 경우 노드 아래에 <connectionStrings> 요소를 직접 중첩시키고 그 밖의 노드는 중첩시켜야합니다.

0

아니요 configSections 노드에 유효한 app.config 파일이 있고 아직 connectionStrings 인 파일을 가질 수 없습니다.

  • section
  • sectionGroup
  • add
  • clear

connectionStrings 목록 및 I에없는 : MSDN 따르면

이 허용 가능한 요소들의 목록 기대하지 마라. n 응용 프로그램에서 해당 위치의 연결 문자열을 찾습니다.