2012-01-19 3 views
1

에서 WCF/워크 플로 서비스를 호스팅 :의 web.config 상속/병합/범위 지정 내가 현재 내 AppFabric 워크 플로우 서비스와 WCF 서비스에 대한 IIS에서 다음과 같은 구조를 테스트하고 하위 폴더

/WebApp/ <-- IIS Application here 
/WebApp/bin/ <-- binaries here 
/WebApp/web.config <-- empty. 
/WebApp/WorkflowApp/V1.0/web.config <-- Settings are stored here 
/WebApp/WorkflowApp/V1.0/MyWorkflow.xamlx 
/WebApp/WorkflowApp/V1.0/Default.aspx <-- just for testing 
/WebApp/WcfService/V1.0/web.config <-- Settings are stored here 
/WebApp/WcfService/V1.0/MyService.svc 
/WebApp/WcfService/V1.0/Default.aspx <-- just for testing 

내 Web.config의 다음과 같은 섹션이 포함되어 내 워크 플로우 서비스 내 코드의 활동 중 하나에서

<appSettings> 
    <add key="TestSetting" value="Test Setting Value" /> 
</appSettings> 

을 내 WCF 서비스 내부에서, 나는 다음과 같은 코드를 사용하여 "appSettings는"에서 항목을 읽을 수 :

var config = ConfigurationManager.AppSettings["TestSetting"]; 

항상 null을 반환합니다. WebConfigurationManager.AppSettings [ "TestSetting"]도 시도했지만 null도 반환합니다. web.config 계층 구조가 appSettings에 대해 작동하지 않는 것 같습니다.

테스트를 위해이 appSetting이 ASP.NET 웹 페이지에서 액세스 할 수 있는지 확인하기 위해 다음 내용이있는 Default.aspx를 추가하고 작동합니다.

<html> 
    <body> 
     <h2> 
      TestWebApp 
     </h2> 
     <%= ConfigurationManager.AppSettings["TestSetting"] %> 
    </body> 
</html> 

하위 폴더의 web.config가 전혀 처리되지 않은 것으로 보입니다. AppFabric 워크 플로/WCF 서비스에 대해 구성 유효 범위가 작동하지 않는 이유는 무엇입니까? 그리고 그것을 작동하게하려면 어떻게해야합니까?

IIS에서 내 웹 응용 프로그램의 루트에 워크 플로/WCF 서비스를 배치하면 appSettings 섹션에 예상대로 액세스 할 수 있습니다. 워크 플로 서비스를 하위 디렉터리에 배치 할 때만 구성 섹션에 액세스 할 수 없습니다.

업데이트 :이 두 경우 모두에 영향을주기 때문에 나는 WCF 및 워크 플로우 서비스로 일반화 할 수있는 질문을 수정 한

. 이를 시도하는 이유는 IIS 응용 프로그램 및 응용 프로그램 풀의 수를 줄이는 것입니다. Windows Server AppFabric Architecture Guide에 따르면

는 :

마찬가지로 응용 프로그램 풀 계획에, 우리는 것이 좋습니다는 의미가 웹 응용 프로그램으로 당신을 논리적으로 그룹화 여러 서비스를 제공합니다. AppFabric은 수백 개의 웹 응용 프로그램을 처리하도록 설계되었습니다. 그러나 최적의 성능과 관리 효율성을 위해서는 웹 응용 프로그램의 수를 가능한 한 적게 유지해야합니다.

이 텍스트를 통해 웹 응용 프로그램의 하위 폴더에 여러 개의 WCF/워크 플로 서비스가 있어야한다고 생각합니다.

답변

2

나는이 문제가 귀하의 워크 플로가 ASP.NET 스레드에서 실행되고 있지는 않지만 스레드 풀의 자체 스레드에 있다고 믿습니다. 결과적으로 ASP.NET 범위 지정 규칙은별로 신경 쓰지 않지만 표준 AppDomain 구성 파일을 사용합니다.

+0

아마도 당신 말이 맞을 것입니다. 이 기사 (http://msdn.microsoft.com/en-us/library/ee677351.aspx)에 따르면 범위 지정 규칙에 따라 서비스 구성을 구성 할 수 있습니다. 나는 단지 이러한 범위 지정 규칙이 구성의 다른 모든 것에도 적용된다고 가정했습니다. 아마도 이것은 사실이 아닙니다. appSettings가 범위 지정 규칙을 따르지 않을 수 있습니다. – Mas

+0

워크 플로우 서비스로 이런 종류의 설정을 어떻게 달성 할 수 있는지 알고 있습니까? – Mas

+0

특수 취급이 필요합니다. 하위 디렉터리는 IServiceBehavior를 통해 ServiceHost에서 검색해야합니다.워크 플로 서비스의 경우이 데이터를 워크 플로 확장에 첨부했습니다. – Mas