2009-09-25 2 views
0

지금까지 BizTalk 응용 프로그램에서만 오케스트레이션을 사용해 왔지만 지금까지 제대로 작동했습니다. 하지만 이제는 불필요한 오케스트레이션 중 일부를 더 나은 성능을 얻기 위해 순수 메시지 라우팅으로 변환하려고합니다.사용자 지정 파이프 라인에서 BTS.Operation을 어떻게 설정합니까?

하나의 메서드 만있는 WCF 서비스가 있는데이 메서드는 BtsActionMapping을 해당 단일 메서드 만 설정할 수 있기 때문에 제대로 작동합니다. 그러나 두 번째 WCF 서비스에는 두 가지 방법이 있으며 현재 BizTalk는 내 메시지를 라우팅하는 방법을 알지 못합니다. BTS.Operation을 사용자 정의 파이프 라인에 설정해야 작동 할 수 있습니다. 그러나 저는이 곳에서 자습서 나 예제를 찾아 보았습니다.

저는이를 수행하기 위해 IBaseComponent, IComponentUI, IComponent 및 IPersistPropertyBag 인터페이스를 구현하려고했습니다. 나는 올바른 방향으로 가고 있는가? 누구든지 나를 모범으로 보거나 더 나은 방법을 보여줄 수 있습니까?

답변

3

사용자 지정 파이프 라인 구성 요소를 작성하는 가장 쉬운 방법은 BizTalk Server Pipeline Component Wizard을 사용하는 것입니다. 그것은 당신을 위해 모든 상용구를 생성합니다. 또한 몇 가지 사용자 지정 파이프 라인 구성 요소를 예로들 수 있습니다. 몇 가지 예를 들어, 사용자 지정 메시지 속성을 설정하는 구성 요소와 같이 필요한 부분에 매우 근접한 부분을 here으로 볼 수 있습니다.

속성을 설정하는 데는 message.Context.Write/Promote를 호출하고 속성의 네임 스페이스와 이름을 전달하면됩니다 (이 경우 각각 "http://schemas.microsoft.com/BizTalk/2003/system-properties"및 "Operation"이됩니다).

+0

답변을 주셔서 감사합니다. 제대로 된 것처럼 보입니다. 제공 한 코드를 사용하여 사용자 정의 구성 요소를 작성했습니다. 그러나 나는 그것을 실행할 수없는 것 같습니다. 수신 파이프 라인을 생성하고 디스어셈블러에 사용자 정의 컴포넌트를 넣습니다. 그런 다음 전송 포트에 파이프 라인을 연결했습니다. 이걸로 나는 여전히 BTS를 얻는다. 작동은 설정되지 않았다. 내 스키마에 BizTalk 스키마를 가져 오거나 포함해야합니까? 아니면 내 파이프 라인을 만들고 배포 할 때 잘못된 것을 수행 했습니까? –

+0

자세한 내용을 알지 못하면서 무엇이 잘못 될지 말할 수 없습니다. 그러나 살펴볼 가치가있는 몇 가지 사항은 다음과 같습니다. 올바른 장소 (오른쪽 파이프 라인)에 속성을 설정해야합니다. 또한 직접 WCF.Action 속성을 설정하는 대신 BTS.Operation + Adapter Action 매핑 경로를 통과해야하는 이유가 있습니까? – tomasr

+0

글쎄, 내가 가지고있는 책들에 그것이 끝났어 야하는 방식이라고 말하면서 내가 어떻게하는지에 대한 답을 찾기 위해 인터넷 검색을한다. 나는 다른 해결책을 찾지 못했다. 그래서 나는 결코 그것을 생각하지 않았다. 다른 방법. 그러나 WCF.Action 속성을 설정하는 것이 문제의 더 좋은 해결책 일 것입니다. 이제는 단일 액션 헤더를 사용하여 웹 서비스에서 호출 할 메소드를 결정하는 두 개의 송신 포트가 있습니다. –