방법: 대기 중인 메시지와 WCF 끝점 교환
큐를 사용하면 통신하는 동안 서비스를 사용할 수 없는 경우에도 클라이언트와 WCF(Windows Communication Foundation) 서비스 간의 메시징을 신뢰할 수 있는지 확인할 수 있습니다. 다음 절차에서는 WCF 서비스를 구현할 때 대기 중인 표준 바인딩을 사용하여 클라이언트와 서비스 간의 통신을 지속하는 방법을 보여 줍니다.
이 단원에서는 WCF 클라이언트와 WCF 서비스 간의 대기 중인 통신에 NetMsmqBinding을 사용하는 방법에 대해 설명합니다.
WCF 서비스에서 큐를 사용하려면
ServiceContractAttribute로 표시된 인터페이스를 사용하여 서비스 계약을 정의합니다.
OperationContractAttribute가 있는 서비스 계약의 일부인 인터페이스에서 작업을 표시하고, 메서드에 대한 응답이 반환되지 않으므로 해당 작업을 단방향으로 지정합니다. 다음 코드에서는 예제 서비스 계약 및 작업 정의를 제공합니다.
서비스 계약에서 사용자 정의 형식을 전달하는 경우 해당 형식의 데이터 계약을 정의해야 합니다. 다음 코드에서는 예제 데이터 계약을 보여 줍니다. 또한 이 데이터 계약을 정의하는 클래스에서 여러 메서드도 정의합니다. 이러한 메서드는 데이터 계약의 일부로 간주되지 않습니다. DataMember 특성을 사용하여 선언된 해당 멤버만이 데이터 계약의 일부가 됩니다.
클래스에서 인터페이스에 정의된 서비스 계약의 메서드를 구현합니다.
System.Messaging을 사용하여 트랜잭션 큐를 만듭니다. MMC(Microsoft Management Console) 대신 MSMQ(Microsoft Message Queuing)를 사용하여 큐를 만들 수 있습니다. 이 경우에는 트랜잭션 큐를 만들어야 합니다.
서비스 주소를 지정하고 표준 NetMsmqBinding 바인딩을 사용하는 구성에서 ServiceEndpoint를 정의합니다. WCF 구성을 사용하는 방법에 대한 자세한 내용은 Windows Communication Foundation 응용 프로그램 구성을 참조하십시오.
큐에서 메시지를 읽어 이를 처리하는 ServiceHost를 사용하여 OrderProcessing 서비스의 호스트를 만듭니다.
서비스를 사용할 수 있도록 서비스 호스트를 엽니다.
서비스 호스트를 닫습니다.
대기 중인 서비스의 클라이언트를 만들려면
Svcutil.exe 도구를 사용하여 WCF 클라이언트를 만듭니다.
주소를 지정하고 표준 NetMsmqBinding 바인딩을 사용하는 구성에 ServiceEndpoint를 정의합니다.
트랜잭션 큐에 쓸 트랜잭션 범위를 만듭니다.
계산기 연산을 호출합니다.
WCF 클라이언트를 닫습니다.
예제
참고 항목
작업
방법: WCF 끝점 및 메시지 큐 응용 프로그램과 메시지 교환