2013-01-16 3 views
12

"on premise"세계에서 Windows 서비스와 같은 응용 프로그램을 만들 때 App.config 파일을 사용하여 데이터베이스 연결 문자열에서 WCF 끝점 정보에 이르기까지 응용 프로그램에 대한 다양한 구성 정보를 저장합니다.Azure Worker 역할에 대해 cscfg 파일과 App.config 파일이 서로 어떻게 관련되어 있습니까?

Azure Worker Role 세계에서 "역할을위한"정보가 포함 된 .cscfg 파일이 제공됩니다.

이 파일이 응용 프로그램의 구성을 보완하는지 또는 App.config 파일 전체를 대체하는지 이해할 수 없습니다. Azure Worker 역할을 구성하기 위해이 두 파일은 어떻게 작동합니까?

답변

15

아주 기본적인 설명 :

개념적으로는 같은 것. 전통적인 응용 프로그램에서는 app.config 파일을 사용하여 응용 프로그램과 관련된 다양한 설정을 정의합니다 (appSettings 절 참조). 마찬가지로 cscfg 파일을 사용하여 클라우드 응용 프로그램과 관련된 다양한 설정을 정의합니다 (ConfigurationSettings 절 참조). app.config 파일과 마찬가지로 cscfg 파일에서 다른 항목 (예 : 클라우드 애플리케이션의 인스턴스 수)을 정의 할 수 있습니다.

원하는 경우 app.config 파일에서 일부 설정을 정의 할 수 있지만 app.config 파일이 "패키지화되어"배포되고 설정을 변경하려면 다음을 수행해야합니다. 응용 프로그램을 다시 패키지하고 배포해야합니다. 그러나 포털 또는 서비스 관리 API를 사용하여 cscfg 파일의 설정을 변경할 수 있으며 응용 프로그램을 다시 패키지하지 않고 다시 배포 할 필요가 없습니다. 예를 들어 설정 파일에서 데이터베이스 연결 문자열을 정의하는 시나리오를 생각해보십시오. app.config 파일에서이 파일을 지정하려면 app.config 파일에서 변경해야합니다. -> 응용 프로그램 빌드 -> 응용 프로그램을 게시합니다. cscfg 파일의 경우처럼 포털에서이 값을 변경하면됩니다.

+0

웹 작업을위한 .cscfg 파일은 어디에서 찾을 수 있습니까? 나는 정상적인 웹 앱 (하늘색 구름 서비스가 아닌)으로 그것을 만들었다. 어떻게 .cscfg 파일을 생성 할 수 있습니까? – Sridharan

11

웹/작업자 역할의 경우 기존 구성 파일 (app/web.config)은 온 - 프레미스 배포 에서처럼 작동합니다. 그러나이 파일이 서비스 패키지에 포함되어 있다는 것을 아는 것이 중요합니다. 즉,이 파일은 배포의 일부입니다.

즉, 응용 프로그램을 다시 배포하지 않고도 app/web.config에있는 설정을 변경할 수 없습니다. 반면에 ServiceConfiguration.cscfg는 클라우드 서비스 배포 슬롯 수준에서 실제 서비스 패키지 옆에 정의 된 것입니다. 즉, 응용 프로그램을 재배포하지 않고도이 구성 파일을 변경할 수 있습니다. 이 설정은 응용 프로그램에서 RoleEnvironment.GetConfigurationSettingValue (ConfigurationManager.AppSettings과 유사)을 호출하여 액세스 할 수도 있습니다.

온 - 프레미스 및 Windows Azure에서 모두 작동하는 응용 프로그램을 작성하려면 Microsoft.WindowsAzure.ConfigurationManager package을 사용해보십시오. 그러면 응용 프로그램이 실행되는 위치를 기반으로 cscfg 또는 app/web.config가 자동으로 선택됩니다.

팁 : RoleEnvironment.Changing/Changed 이벤트에 가입하면이 구성 파일의 변경 내용을 가로 챌 수 있습니다. 이를 처리하여 코드의 web.config (예 : explained here)를 업데이트 할 수 있습니다.

+0

예제 코드 : Microsoft.Azure.CloudConfigurationManager.GetSetting ("xxx") –

+0

웹 응용 프로그램에 .cscfg 파일을 사용할 수 있습니까? – Sridharan

관련 문제