2013-01-10 3 views
1

웹 사이트가 서버에 배포되어 있습니다. 어느 날 그것은 connection string 이름이 이미 추가되었다는 오류를 던졌습니다. web.config 파일을 확인했고 그 이름에 단 하나의 항목 만 있습니다. 구성에서 항목을 제거했습니다. 이제 웹 사이트는 잘 작동하고 데이터베이스에서 데이터를 가져 왔습니다.중복 연결 문자열 오류

참고 : 구성 파일의 이름을 변경하면 오류가 표시됩니다.

내가 생각하기에 문제는 - 연결 문자열 부분이 메모리에 캐시되어 있다고 생각합니다. 그렇지? 우리는 어떻게이 원치 않는 행동을 극복 할 수 있습니까?

설정 파일 소스 코드

릴리스 구성

<system.web> 
<compilation xdt:Transform="RemoveAttributes(debug)" /> 

</system.web> 

디버그 구성

<system.web> 

</system.web> 

참조 :

  1. Issue with unwanted connection string appearing in my published web config
  2. 문제없는3210
  3. .NET 2.0 App.Config connection strings includes unwanted SQLExpress default
+0

관련된 질문은 http://stackoverflow.com/questions/16547034/encrypted-config-file-does-not-apply-remove-tag-in-connectionstrings을 참조하십시오. – Lijo

답변

5

- 당신이 web.config 파일을 변경하는 경우는 IIS 프로세스는 리셋을 얻는다, 그래서 관련된 모든 캐싱은있을 수 없습니다.

동일한 연결 문자열 이름이 포함 된 web.config 파일이있는 부모 또는 하위 디렉터리가있는 것일 수 있습니다. 이는 오류의 원인입니다.

여러 가지 방법으로 그것을 해결할 수 :

  • 을 하나의 web.config 연결 문자열 이름이 올바른 범위는
  • remove 요소 사용이 확인 :

    <connectionStrings> 
    <remove name="theConnectionString" /> 
    <add name="theConnectionString" ... /> 
    <connectionStrings> 
    

Encrypted config file does not apply “remove” tag in connectionStrings 관련 질문이있는 경우

+0

감사합니다. '제거 '가 효과가있었습니다. 어제까지 왜 일하고 있었고 오늘 일하지 않는지 설명 할 수 있습니까? 웹 사이트를 변경하지 않았습니다 – Lijo

+0

xdt : Transform = "RemoveAttributes (debug)"문제가 있습니까? – Lijo

+2

@Lijo - 누가 그 이유를 알고 있습니까? 나는 당신의 컴퓨터 앞에 앉아 있지 않다. 'web.config' 파일을 잘못된 디렉토리에 복사했을 수 있습니다. 그리고 그 변형은 관련이 없을 것입니다. – Oded