2010-06-10 6 views
0

메시지를 취하고 다른 파트를 동적으로 (디스 어셈블 단계에서) 추가하는 사용자 지정 파이프 라인 구성 요소를 만들려고했습니다. BizTalk가 처리하려고하는 것을 볼 수 있도록 보내기 포트를 설정하지 않았습니다. 나는 신체 부분 만 볼 수 있고, 추가 부분은 나타나지 않는다. 사용 된 코드입니다.수신 파이프 라인에 동적으로 메시지 파트 추가

var part = pc.GetMessageFactory().CreateMessagePart(); 
part.Data = new MemoryStream(new byte[] {1, 2, 3, 4, 5}); 
inmsg.AddPart("another_part", part, false); 

고맙습니다.

+0

흥미롭게도 MIME 인코더를 사용하는 사용자 지정 파이프 라인이있는 송신 포트를 추가했습니다.이 두 섹션 (body 및 another_part)은 string64 형식으로 전송되었습니다. 나는 그것이 추가 부분을 가지고 어딘가로 보내야한다고 추정한다? 이것은 메시지가 실패한 경우 모든 부분을보고 싶기 때문에 송신 포트라고 할 수 있으므로 이치에 맞지 않습니다. 생각? –

답변

0

대부분의 어댑터는 메시지의 본문 부분을 벗어나는 것을 보지 않습니다. 예외는 웹 서비스 관련 어댑터와 전자 메일에 첨부 파일로 추가 부품을 포함 할 수있는 SMTP 필터입니다.

이것은 실제로 의미가 있습니다. 예를 들어, 파일 어댑터는 여러 부분으로 무엇을할까요? 각 파일을 별도의 파일로 저장 하시겠습니까?

MIME 인코더가 차이가 나는 이유는 각 부분을 결과 MIME 메시지로 인코딩하여 명시 적으로 다중 부분 메시지를 처리하기 때문입니다.

+0

토마스, 답장을 보내 주셔서 감사합니다. 제 질문이 분명하지 않은 것 같습니다. 질문은 어디에도 라우팅되지 않은 다중 부분 메시지와 관련되어 있으며 추가 부분을 보지 못했습니다. 달성하기 위해 노력한 좋은 예는 ESB 예외 처리입니다. 오류 메시지가 생성되면 실패한 원래 메시지 인 추가 부분이 있습니다. BT 쿼리 도구에서 일시 중단 된 메시지를 쿼리하면 두 부분을 모두 볼 수 있습니다. 그게 내 커스텀 멀티 파트 메시지에서 볼 수있을 것으로 기대되는 것입니다. Mime 인코더는 부품이 실제로 존재했는지 확인하기위한 것입니다. –

+0

오, 죄송합니다, 당신을 오해하신 다음 :) 그렇습니다. 당신은 그것을보아야합니다. 파이프 라인 구성 요소가 실행되는 위치에 따라 다릅니다. 기본적으로 파이프 라인이 실행되기 전에 BizTalk 메시지가 표시되는 경우가 있습니다. 이 송수신 파이프 라인입니까? – tomasr

+0

Thanks Tomas, 우리는 분해 단계에서 파이프 라인을받는 것에 대해 이야기하고 있습니다. –

관련 문제