연결 문자열의 경우 실제로 공유 파일을 가리킬 수 있습니다. 공유 파일이 네트워크 UNC에있는 경우 앱을 호스팅 할 컴퓨터에 대한 관리자 권한이 필요합니다.
해결 방법 : web.config에서 configSource를 사용하여 로컬 구성 파일을 가리 킵니다. .Net 제한으로 인해 이는 루트 구성 파일 수준 이하 여야합니다. 앱 폴더 자체의 파일을 가리 킵니다.
<connectionStrings configSource="ConnectionStrings.config" />
응용 프로그램 풀 사용자가 액세스 할 수있는 공유 위치에서 공유 연결 문자열이 포함 된 구성 파일을 추가합니다. 이 파일에는 connectionStrings 섹션 자체가 아닌 xml이 포함되어서는 안됩니다. 공유 파일 ConnectionStrings.config는 다음과 같습니다.
<connectionStrings>
<clear/>
<add name="connString1" connectionString="connString1 info goes here"/>
<add name="connString2" connectionString="connString2 info goes here"/>
</connectionStrings>
이제 트릭입니다. 앱 폴더에 외부 공유 구성 파일을 가리키는 Windows 심볼릭 링크를 만듭니다. 이 작업을 수행하려면 관리자 권한이 필요합니다.
mklink ConnectionStrings.config \\someServer\someShare\someFolder\ConnectionStrings.config
우리는 방금 .Net을 능가했습니다. 구성 시스템은 configSource 설정을 사용하여 ConnectionStrings.config라는 로컬 파일에서 연결 문자열을 찾습니다. 심볼릭 링크는 .Net에 대한 파일처럼 보이고 심볼릭 링크는 공유 구성 파일로 해석됩니다.
주의 사항 : 공유 파일을 변경해도 .Net에서 앱 다시 시작이 자동으로 트리거되지 않습니다. IIS의 경우 웹 사이트 또는 앱 풀을 수동으로 다시 시작해야합니다.
심볼릭 링크를 생성하려면 관리자 권한이 필요하기 때문에이 접근 방식은 모든 사람에게 적용되지 않을 수 있습니다. 공유 파일이 동일한 논리 드라이브에있는 경우 작동 할 수있는 두 가지 관련 대안 (하드 링크 및 접합)이 있습니다. 참조 이러한 논의 하고 이 논의 자세한 내용입니다.