2014-05-09 3 views
3

저는 ASP.NET 웹 응용 프로그램과 Windows 서비스로 구성된 엔터프라이즈 응용 프로그램을 보유하고 있습니다. 여기에는 WCF를 사용하는 다른 시스템 (클라이언트 및/또는 서버로)에 "플러 거블 (pluggable)"커넥터가 여러 개 있습니다. 시작 프로세스 중에 플러그 가능한 커넥터를 웹 응용 프로그램과 서비스에 모두로드해야합니다.WCF 구성을위한 web.config 및 app.config 파일 대신

표준 WCF 구성 메커니즘을 사용하는 경우 모든 커넥터에 대한 WCF 구성을 병합 한 다음 web.config 및 service.exe.config에 모두 넣어야합니다.

이상적으로는 각 커넥터의 WCF 구성을 해당 커넥터의 구성 파일의 일부로 갖고 싶기 때문에 시작시 각 커넥터가로드 될 때 해당 커넥터의 WCF 구성이 수행됩니다. 이것은 하나의 커넥터에 대한 모든 구성이 한 곳에서 함께 그룹화되어 다른 구성과 분리되어 있기 때문에 훨씬 더 모듈화 된/OO 방식 인 것 같습니다.

저는 프로그래밍 방식의 구성을 사용하여이 작업을 수행 할 수 있지만 실제로하고 싶은 작업을 수행 할 수 있음을 알고 있습니다. config 섹션을 텍스트 또는 DOM 트리로 전달하여 런타임에 WCF를 구성 할 수 있습니다.

이것을 달성 할 방법이 있습니까? 나는 현재 .Net 3.5를 사용하고 있지만 4.5에 관심이있다. 사전

+0

"플러그 형"커넥터의 의미를 설명해 주시겠습니까? 이 어셈블리가 다른가요? –

+0

네, 시스템은 우리 또는 제 3자가 제공 한 커넥터를 통해 다른 엔터프라이즈 응용 프로그램에 연결할 수 있으며, 각 커넥터는 최소한 하나의 .Net 어셈블리와 필요에 따라 자체 구성 파일 및 기타 리소스로 구성됩니다 – Andy

답변

1

에서

덕분에 나는 그 외부 소스에서 구성 설정 섹션을로드 할 기본 ServiceHost에 대한 액세스를 허용합니다 볼 수있는 옵션이 없습니다.

그리고 런타임에 시스템 구성을 업데이트하거나 바꿀 수있는 방법이 없으며 웹 응용 프로그램에서 구성을 변경하는 것도 의미가 없습니다.

가장 좋은 옵션은 다른 구성 옵션을 나타내는 클래스를 만드는 것입니다. 어느 바인딩 및 어떤 보안 및 기타. 그런 다음 직렬화 프로세스를 사용하여 해당 클래스를 xml 파일에 저장할 수 있습니다. 커넥터가 연결된 xml을 가져 와서 deserialize하고 순수한 코드를 사용하여 서비스 Host/Client Channel을 구축하면 상당히 쉽습니다.

Custom Service Host을 참조하십시오.

그리고 클라이언트 측의 경우 ChannelFactory 만 사용하십시오.

가장 나쁜 옵션은 System.ServiceModel.dll의 OutOfTheBox 요소 클래스를 사용하고 사용자가 직접 절반의 WCF 라이브러리를 구현하는 것입니다.