2011-01-24 2 views
4

사용자 지정 WCF 바인딩을 쓰고 있는데 메시지 처리 문제가있는 경우에만 일부 코드를 실행하고 싶습니다. 내 생각은 사용자 지정 IOperationInvoker 추가하고 메시지 처리 주위에 try/catch 사용하는 것입니다. 내 바인딩 내에서 사용자 지정 동작을 추가하는 방법을 찾을 수 없습니다. 이 바인딩을 사용하려는 모든 서비스에 바인딩 및 동작을 선언하지 않아도됩니다.사용자 지정 바인딩에서 사용자 지정 WCF 동작을 추가 할 수 있습니까?

내가 실행중인 모델은 Net.Msmq 바인딩입니다. 여기서 바인딩을 통해 재시도 처리를 선언 할 수 있습니다. 그것은 본질적으로 내가 복제하려는 것이지만, 내 자신의 바인딩을 통해.

WCF 전문가가 있습니까?

답변

1

나는 생각하지 않습니다. 바인딩은 동작을 추가 할 수 없습니다. 기본 WCF 바인딩을 확인할 수 있습니다. 예를 들어 WebHttpBinding은 항상 WebHttpBehavior 또는 WebScriptEnablingBehavior과 함께 사용되지만 WebHttpBinding은 추가 할 수 없으므로 수동으로 추가해야합니다. 이 불편을 해결하기 위해 WCF는 ServiceHost 대신 WebServiceHost 클래스를 사용할 수 있습니다. WebServiceHost는 REST 서비스에 필요한 모든 구성을 작성합니다. WebHttpBehavior를 추가하고 WebHttpBinding을 지정합니다. 동일한 접근 방식을 사용할 수 있습니다.

하지만이 방법은 좋지 않다고 생각합니다. 재시도 처리는 이미 ReliableSession에서 처리하며 채널로 구현되므로 동일한 방식으로 시도해야합니다. 이 경우 행동 문제를 다룰 필요가 없습니다.

관련 문제