2010-02-02 5 views
9

.GetBody()를 사용하여 본문을 추출하려고하는 WCF 메시지 (Channels.Message)가 있습니다. 그러나 나는 그것을 한 번만 할 수 있고 "GetBody <>"을 다시 사용하려고하면 "이 메시지는 읽혀지기 때문에 작업을 지원할 수 없습니다."라는 메시지가 나타납니다.WCF 메시지 본문을 두 번 읽습니다. "메시지를 읽을 수 없습니다."

어떻게하면 메시지 본문을 다시 읽을 수 있습니까?

감사합니다.

답변

13

여기 MSDN에서 수행하려는 작업에 대한 기사가 있습니다. 버퍼로 메시지 복사 절을 참조하십시오. 메시지 본문에 두 번 이상 액세스해야한다는 점에 대해 명시 적으로 설명합니다. 에 큰 도움이되지 않습니다

http://msdn.microsoft.com/en-us/library/ms734675.aspx

+0

는 .... 난 당신이 한 번만 메시지 본문을 읽을 수 배웠습니다,하지만 난 특히 여기 MSFT 로직 ... –

+5

문서 상태를 찾을 수 없습니다. .. "게시자 - 구독자 시스템의 일부로 여러 대상에 동일한 메시지를 전달하는 것과 같이 메시지 본문에 두 번 이상 액세스해야하는 경우가 있습니다.이 경우 전체 메시지를 버퍼링해야합니다 (본체 포함)을 메모리에 저장합니다. CreateBufferedCopy를 호출하여이 작업을 수행 할 수 있습니다. " 이 섹션의 샘플 코드를 보면 CreateBufferedCopy를 사용하여 메시지 본문에 두 번 이상 액세스하는 것을 보여줍니다 –

관련 문제