2012-01-31 3 views
0

요청 응답 포트에 WCF-BasicHttp 어댑터를 보유한 수신 위치가 있습니다. 수신 위치에는 XML 디스어셈블러를 배치 한 곳에 사용자 정의 파이프 라인이 첨부되어 있으며 봉투 스키마가 들어 있습니다. 이 엔벨로프 스키마는 일부 요청 요소와 페이로드 요소를 포함하는 요청입니다. XML 디스어셈블러는이 페이로드를 추출하여 MessageBox에 게시합니다. 페이로드가없는 봉투 스키마 : 시간 초과

지금 내 질문 : 내가 시간 제한을받을 페이로드의 콘텐츠없이에 요청을 넣어

(WCF에서 1 분 기본값). 또한 비 xml 콘텐츠 (예 : 'aaaaa')를 넣으면 시간 초과가 발생합니다.

두 시나리오 모두에서 BizTalk에서 어떤 일이 발생합니까 (두 시나리오 모두에서 시간 제한이 발생하는 이유를 알 수 없습니다) ....?

답변

0

좀 더 자세한 정보를 제공해 주실 수 있습니까?

요청을 받고 응답을 생성하는 오케스트레이션을 게시 했습니까? 격리 된 호스트를 사용하고 있습니까? 아니면 BizTalk 호스트 프로세스에서 직접 수신 위치를 만들었습니까?

이 적용 할 수 있는지 확실하지 않지만 (둘러보기 또는 파이프 라인 처리를 고려하지 않고) 오케스트레이션을 WCF 서비스로 게시하는 경우 수신 위치가 만들어지면 메시지를 보낼 수 있습니다. (기본값은 SOAP 메시지 봉투이지만 수신 위치 메시지 설정에서이를 대체 할 수 있음). 그런 다음 하나 이상의 오케스트레이션이이 메시지를받을 수 있으며 포트 응답으로 다시 전송 된 모든 메시지는 호출자에게 다시 전송됩니다.

따라서 비어 있거나 준수하지 않는 데이터를 수신 위치에 게시하면 오케스트레이션은 메시지를 전혀 수신하지 않고 대신 일시 중단 될 수 있습니다. 결과적으로 WCF 클라이언트는 회신을받지 않으므로 결국 시간이 초과됩니다.

+0

예 일반 응답 메시지를 만드는 오케스트레이션이 있습니다 (이 알림은 BizTalk/Messagebox에서 페이로드가 수신되었음을 의미합니다). 하나의 고립 된 호스트가 있는데,이 호스트에 바인드 된 하나의 수신 위치입니다. BizTalk WCF 서비스 게시 마법사를 사용하여이 오케스트레이션을 WCF 요청 - 응답 포트로 게시했습니다 (게시 중에 XmlDocument로 게시를 변경 한 후 메시지 변수를 특정 요청 스키마로 변경했습니다). –