.NET Compact Framework의 메시징
업데이트: 2007년 11월
.NET Compact Framework에서 구현되는 WCF(Windows Communication Foundation)의 하위 집합에서는 메시지 기반 응용 프로그램을 만드는 데 사용되는 통합 프로그래밍 모델을 제공합니다. 이 통합 프로그래밍 모델을 사용하여 개발자는 여러 플랫폼에서 작동하고 데스크톱의 기존 WCF 서비스와의 상호 작용을 지원하는 안전한 메시징 응용 프로그램을 만들 수 있습니다.
참고: |
---|
WCF는 .NET Compact Framework 버전 3.5 이상 버전에서 지원됩니다. |
아키텍처
.NET Compact Framework의 WCF 메시징 계층은 표준 데스크톱 WCF 아키텍처에 따라 모델링됩니다. 메시징 계층은 장치에서 지원되며 해당 장치에서 데스크톱의 기존 WCF 서비스에 연결할 수 있도록 합니다. 서비스 런타임 계층은 장치에 없습니다.
다음 그림에서는 채널 스택, 관련 프로토콜 및 WCF 바인딩 요소를 보여 줍니다.
.NET Compact Framework의 WCF 메시징 계층
WS-Security 버전 1.0 사양에 대한 지원에는 X.509 인증서를 사용하는 SOAP 메시지 보안이 포함됩니다.
Message 클래스는 WS-Addressing 표준을 기반으로 빌드됩니다.
데스크톱 구현과의 차이점
.NET Compact Framework에서는 데스크톱에서 지원되는 전체 프로토콜 및 바인딩 집합을 지원하지 않습니다. 지원되는 특정 프로토콜 및 바인딩에 대한 자세한 내용은 이전 단원에 나온 아키텍처 다이어그램을 참조하십시오.
서비스 런타임 계층은 .NET Compact Framework에서 지원되지 않습니다. 따라서 데스크톱의 기존 WCF 서비스에 연결하려면 다음 사항을 고려해야 합니다.
Web.config 파일의 일부 설정을 변경해야 합니다. 자세한 내용은 방법: HTTP 전송 사용을 참조하십시오.
System.ServiceModel 계약에 대한 장치 지원을 추가하려면 .NET Compact Framework ServiceModel 유틸리티 도구(NetCFSvcUtil.exe)를 사용하여 WCF 클라이언트 프록시를 생성하면 됩니다. 이 도구는 .NET Compact Framework의 다양한 계약 매개 변수에 대한 지원을 구현합니다. NetCFSvcUtil.exe는 Power Toys for .NET Compact Framework에 포함되어 있습니다. 자세한 내용은 Power Toys for .NET Compact Framework를 참조하십시오.
NetCFSvcUtil을 사용하지 않는 경우 WCF ServiceModel 데스크톱 유틸리티 도구(SvcUtil.exe)를 사용하고 생성된 코드를 사후 처리할 수 있습니다. 이 경우 생성된 코드에서 지원되지 않는 System.ServiceModel 특성을 제거해야 합니다. 이러한 수정 내용 및 예제에 대한 자세한 내용은 방법: HTTP 전송 사용을 참조하십시오.
또한 전체 .NET Framework의 WCF 메시징 형식 및 멤버 하위 집합도 지원됩니다.
다음 단원에서는 WCF 보안 기능에 해당하는 차이점에 대해 설명합니다.
보안
.NET Compact Framework의 WCF 메시징은 WS-Security 기능의 하위 집합에 해당하고 X.509 인증서를 기반으로 하는 SOAP 메시지 보안을 지원합니다. WS-Security는 지원되는 모든 전송의 맨 위에 배치할 수 있는 응용 프로그램 계층입니다. WCF 메시징에서 지원되는 보안 바인딩 요소는 SecurityBindingElement 및 AsymmetricSecurityBindingElement입니다. 보안 기능을 구현하려면 ClientCredentials 개체에 있는 X.509 인증서를 WCF 클라이언트 프록시의 생성자에 매개 변수로 전달해야 합니다.
전송 수준 보안은 .NET Compact Framework의 WCF에 대해서도 지원됩니다. 여기에는 HttpsTransportBindingElement 및 BasicHttpSecurity에 대한 지원이 포함됩니다.
.NET Compact Framework에서 WCF 보안을 구현하는 것은 다음과 같은 점에서 데스크톱에서 WCF 보안을 구현하는 것과 다릅니다.
WS-Security 버전 1.0의 하위 집합만 지원됩니다.
SecurityAlgorithmSuite 클래스의 경우 운영 체제 제약 조건 때문에 Basic256Rsa15 속성만 지원됩니다.
메시지 헤더를 암호화할 수 없습니다.
BasicHttpSecurityMode가 지원되지 않습니다.
참고: |
---|
확대 시행되는 일광 절약 시간제 동안 5분의 기본 타임스탬프 유효성 검사가 실행되면 메시지 보안을 사용하는 보내는 메시지가 타임스탬프 유효성 검사 오류 때문에 실패합니다. 확대 시행되는 일광 절약 시간제는 3월의 두 번째 일요일과 4월의 첫 번째 일요일 사이와 10월의 마지막 일요일과 11월의 첫 번째 일요일 사이에 발생합니다. 이 문제를 해결하려면 DST(일광 절약 시간제) 2007 업데이트를 설치하십시오. 이 내용은 Windows Mobile 5.0 빌드 15096.3.0 이상이나 Windows Mobile 6.0 이상을 실행하는 장치에는 적용되지 않습니다. |
배포
WCF 메시지 DLL은 .NET Compact Framework CAB 파일에 전달됩니다. 관리되는 어셈블리는 전역 어셈블리 캐시에 설치됩니다.
장치용 WCF 메시징 DLL은 다음과 같습니다.
System.ServiceModel.dll
System.Runtime.Serialization.dll
배포에는 WCF Exchange Server 메일 전송의 배포도 포함됩니다. 장치 및 데스크톱 배포에 대한 자세한 내용은 WCF Exchange Server 메일 전송을 참조하십시오.
로깅
데스크톱 .NET Framework의 WCF는 추적, 메시징 및 이벤트라는 세 가지 형식의 로깅을 지원합니다. .NET Compact Framework의 WCF에서는 코드 예외를 추적하는 추적 로깅만 지원하며 경고 및 오류 메시지는 로깅하지 않습니다. 레지스트리 키는 로깅을 구성하는 데 사용됩니다.
WCF 정보를 로깅하려면 먼저 .NET Compact Framework에서 로깅을 사용하도록 설정해야 합니다. 로깅 기능 및 WCF 추적 로그를 사용하도록 설정하는 방법에 대한 자세한 내용은 방법: 로그 파일 만들기를 참조하십시오.
참고 항목
개념
기타 리소스
WCF(Windows Communication Foundation) 개발 및 .NET Compact Framework