2009-12-31 3 views
3

최근에 저는 매우 흥미로운 환경에서 앱을 작업했습니다. 이 응용 프로그램에는 6 또는 7 개의 병렬 수준이 있었으며 첫 번째 2 개 수준 만 개발자가 접촉 할 수있었습니다. 회사 정책의 일환으로 모든 빌드가 Tivoli 패키지로 수행되었으며 설치가 매우 복잡합니다.코드를 변경하지 않고 다중 환경으로 빌드하기 위해 web.config를 설치하는 방법은 무엇입니까?

최종 레벨은 첫 번째 레벨 또는 "Dev"서버 이후에는 코드 변경이 허용되지 않았기 때문에 web.config에 환경 변수의 여러 암호화 섹션이 포함되어있었습니다. 이 응용 프로그램은 IIS에서 설정 한 경로 및 변수의 환경을 감지 할 수 있도록 작성되었습니다.

이 유형의 문제에 대해 단순하거나 더 나은 아키텍처는 무엇인지 유지해야하는 짐승입니까?

+0

다른 구성에 대해 여러 web.config 파트를 지원하는 VS2010을 기다립니다. – SLaks

답변

0

ConfigurationManagerOpenExeConfiguration을 사용해 보았으며 기본값이 web.config이 아닌 적절한 환경에 적합한 구성을 명시 적으로로드 했습니까?

자세한 내용은, 당신은 웹 구성의 모든 환경을위한 모든 구성을 포함하고 해당 환경의 컴퓨터 이름과 자신의 키를 앞에 수 OpenExeConfiguration on MSDN

0

을 확인하십시오. 그런 다음 Server.MachineName (또는 응용 프로그램이 실행되는 서버를 식별하는 다른 방법)을 사용하여 올바른 구성에 액세스 할 수 있습니다.

<appSettings> 
<add key="DEVMACHINENAME_baseURL" value="http://dev.foo.com" /> 
<add key="QAMACHINENAME_baseURL" value="http://qa.foo.com" /> 
</appSettings> 

응용 프로그램 자체에서 정보를 조회 할 수 있으므로 아무도 web.config에서 아무 것도 수정하지 않아도됩니다.

+0

그런데 거대한 멀티 섹션 설정으로 우리가 지금하고있는 일이지만 머신 이름은 새로운 스핀입니다. 우리는 상위 env에서로드 균형을 조정하므로 옵션이 될 수 없습니다. –

1

흠, (면책 조항 : 뭔가 내가를 작성한 얘기하자)

피사체가 포스트에서 약간 다른 것 같다,하지만 난 당신이 무슨 뜻인지의 아이디어가 생각합니다. 필자가 작성한 도구 인 dashy을 사용하면 단일 코드베이스를 처리하고 다양한 환경에 맞게 구성 할 수 있습니다. 그러나 이 아니지만이 환경에 대한 보안 제한을 다른 것 위에 두십시오. 그러나 소스 제어 및 일반 시스템에 따라 관심이있을 수 있습니다. 홈페이지의 그림에서 작동하는 방식에 대해 합리적인 아이디어를 얻어야합니다. 어쩌면 관심이 있을지도 모르겠지만 다른 환경으로의 배치를 관리하는 데 사용됩니다. 현재 진행중인 작업 ("베타")이지만 현재 버전은 테스트에 적합합니다.

+0

안녕하세요 저는 멋진 도구를 위해 이걸 upvoted했습니다. dashy는 멋지게 보입니다. 그러나 우리는 고대 Tivoli 빌드 도구에 고정되어있어 푸딩 체인을 푸시 할 수 있습니다. MSbuild 또는 다른 빌드 도구는 옵션이 아닙니다. 그 미친, 그리고 첫 번째 빌드 후, 그것은 변함없이 prod까지 모든 방법을 의미합니다. –

+0

Tj : 아, 그럼. 그러나 어떤 빌드 시스템에서도 dashy를 사용할 수 있다는 점에 유의하십시오. 모든 대시가 필요로하는 것은 svn repo입니다. 그런 다음 구성을 * dashy로 이동하면 모든 이점을 얻을 수 있습니다 (xml이기 때문에 원하는 경우 쉽게 편집 할 수 있습니다). 그런 다음 저장소에서 '릴리스'를 유지 관리 할 수 ​​있으므로 사물을 추적 할 수 있습니다.그러나 건배는 아직 개발 중입니다. (직장에서 라이브로 사용하고 있지만 집에서도 사용하고 있습니다.) 그래서 원하는 것을 완벽하게 지원하지는 않습니다 (출시의 전환,하지만 그건 내가 가진 것입니다. 지난 며칠 동안 작업 중! :) –

1

ASP.NET의 최신 버전은 이제 웹 구성 변환을 지원하므로 배포, 테스트 또는 준비를 위해 프로젝트의 특정 설정을 변경할 수 있습니다. 다음은 위대한 intro by Tom Hundley입니다.

관련 문제