환경 변수 (dev/staging/production 등의 다른 환경에 해당)를 기반으로 web.config 파일에서 연결 문자열을 변경해야합니다. 다른 작업을 사용하여 다른 구성 변경을 수행하는 다른 솔루션을 보았지만 환경 변수를 기반으로 연결 문자열을 변경할 수있는 무언가를 찾을 수 없었습니다. 누구든지이 일을 할 수있는 방법을 알고 있습니까?ASP.NET의 환경 변수를 기반으로 web.config 파일 변경
답변
우리는 Web.config의에서 appSettings는과 connectionStrings 요소의 configSource 속성을 사용한다.
기본적으로 모든 환경 (dev, qa 및 production)에 대해 동일한 web.config 파일이 있습니다.
<?xml version="1.0"?>
<configuration>
<appSettings configSource="local.appsettings.config" />
<connectionStrings configSource="local.connectionstrings.config" />
</configuration>
그리고 우리가 유지하고 다음 파일 :
그런 다음 우리는 Web.config의에서
... 예를 들어 ... 파일 "특정 환경"을 별도의 이용
local.appsettings.config.development
local.appsettings.config.qa
local.appsettings.config.production
local.connectionstrings.config.development
local.connectionstrings.config.qa
local.connectionstrings.config.production
배포 전에 모든 asp.net 응용 프로그램을 미리 컴파일하므로 CI 솔루션에서 활용하는 사용자 지정 msBuild 작업이 있습니다.이 작업은 대상 환경에 따라 올바른 구성 파일을 복사합니다 적절한 .config 파일에, 표준) ...
그래서, 우리가 dev에에 배포하는 경우, local.appsettings.config.development -> local.appsettings.config
우리는 품질에 배포하는 경우, 지역 .appsettings.config.qa -> local.appsettings.config
이렇게하면 우리의 모든 환경에서 핵심 web.config를 동일하게 유지할 수 있습니다.
web.config에 두 개의 연결 문자열과 다른 변수 (예 : isTesting
)가있는 경우 isTesting
값을 기반으로 사용할 연결 문자열을 선택 하시겠습니까?
구성 섹션을 사용할 수도 있고 섹션 간의 서버 이름 전환을 기반으로 할 수도 있습니다. 이렇게하면 같은 이름의 키를 가질 수 있습니다.
prebuild 이벤트를 사용하여 구성 관리자의 각 환경에 대해 web.config를 설정할 수 있습니다. 나는 우수한 결과로 이것을 시도했다.
http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
디버그이 있고 지역/프리 프로덕션/생산을 할 수 있습니다 구축 ... 등
- 1. asp.net의 web.config
- 2. ASP.NET의 web.config 파일에 대한 대안
- 3. Linq Where 절 매개 변수를 기반으로 변경
- 4. 명령 줄에서 web.config 변경
- 5. 프로덕션 환경의 Web.Config 변경
- 6. Web.Config 파일 외부에 SMTP 저장
- 7. OSX의 사용자 환경 설정을 기반으로 제공된 서비스 변경?
- 8. 환경 변수를 Hudson에 추가
- 9. 텍스트에서 환경 변수를 확장하십시오.
- 10. 환경 변수를 영구적으로 만듭니다.
- 11. 환경 변수를 읽지 못합니까?
- 12. 어떻게 grails 환경 변수를 설정합니까?
- 13. 의 Web.config 파일 오류
- 14. 리디렉션에 web.config 파일 사용
- 15. web.config 파일 섹션 대체품
- 16. asp.net에서 web.config 파일 업데이트
- 17. Web.Config 파일 편집
- 18. web.config 및 세션 수명주기 변경
- 19. ASP.NET의 발신자 주소 변경
- 20. 허드슨의 Ruby 환경 변경
- 21. 세계화 설정을 기반으로 web.config appsettings를 변경하십시오.
- 22. Visual Studio 2010 - 개발자/컴퓨터/환경 당 Web.Config 설정
- 23. SSRS 2008 매개 변수를 기반으로 축 눈금 옵션 변경
- 24. asp.net의 gridview에 pdf 파일 크기 값 표시
- 25. gvim에서 환경 변수를 얻는 방법
- 26. Perl 변수를 환경 변수로 설정하기
- 27. WAMP에서 환경 변수를 설정하는 방법
- 28. PHP의 Windows 환경 변수를 해결하십시오.
- 29. UNIX에서 C로 환경 변수를 나열하십시오.
- 30. 영구적으로 JAVA_TOOL_OPTIONS 환경 변수를 제거하십시오.
감사 이봐,하지만 환경 변수에 따라이 작업을 수행 할 수있는 방법이있다? 이런 식으로하고 싶습니다. 그러나 클라이언트는 각각 다른 환경에서 환경 변수를 기반으로 환경 변수를 설정하도록 요청했습니다. 그럴 경우, 그 부분을 놓치고 있습니다 (환경 변수를 보는 곳). 감사합니다. – Ryan
각 환경에 대한 연결 문자열을 단일 .config 파일에 보관해야합니다. 뭔가 같은 : < "="dbString_dev "ConnectionString에 이름을 추가"/> <추가 이름 = "dbString_qa"를 ConnectionString = ""/> <추가 이름 = "dbString_prod"를 ConnectionString = "" /> connectionStrings> 그런 다음 일종의 "구성 객체"클래스가 있다고 가정하면 환경 변수를 기반으로 올바른 문자열을 읽을 수 있습니다. * MAJOR *의 결함 계획은 .. 이제 개발자 및 생산자와 동일한 파일에 모든 프로덕션 구성 정보가 있습니다. –
datacop
이 방법을 App_Data 폴더의 configSource 파일과 함께 사용합니다. App_Data 폴더는 나중에 서버 환경의 구성과 혼합합니다. –