2009-09-03 2 views
0

사용자 지정 작업 선택기를 사용하여 서비스를 작성한 경우 선택자는 단순히 메시지 본문의 특정 요소를 확인한 다음 (작업을 무시하고) 계약에서 호출 할 메서드를 지정합니다.IDispatchOperationSelector 질문

이 작동합니다. 그리고 서버 코드가 지금 호출되는 것을 볼 수 있지만 클라이언트가 요청 동작이 응답 작업을 충족시키지 못한다는 예외를 throw합니다. 대응 작업 헤더를 조정할 나에게 도움이 될 것이다, 또는 변경된 조치를 받아들이 내가 클라이언트에서 뭔가를 할 수있는 확장 지점

...

많은 감사

+0

예외 (유형 및 스택 추적)에 대한 자세한 정보를 제공하는 것이 유용 할 수 있습니다. 예를 들어 상상할 수 있습니다. 여기에 보안 역할을하는 몇 가지 프로토콜 채널 ... – Brian

답변

1

OperationContractAttribute의 ReplyAction = "*"설정으로 인해 메시지의 동작이 아무것도 설정되지 않으므로 서버에서 작업을 전환 할 때 클라이언트가 혼동되지 않습니다.

1

당신은 추가 사용 시도 할 수 IDispatchMessageInspector 구현 및 BeforeSendReply() 메서드에서 보내는 메시지에 대한 작업을 변경하십시오. IDispatchOperationSelector에서 수행중인 작업에 따라 메시지 관리자를 제거하고 모든 작업을 수행 할 수 있습니다.