내가 이 일을 권장하지 것이다 그러나 이론적으로는 표현 모양 내에서 쉘 명령을 사용하여 EXE 파일을 실행할 수 있습니다 :
System.Diagnostics.Process.Start(@"C:\yourPath\yourExecutable.exe")
System.Diagnostics
네임 스페이스 BizTalk 2006에서 사용할 수 있습니다, 나는 '돈 BizTalk 2004 (BizTalk 2004에는 사용 가능한 System 네임 스페이스의 매우 제한된 하위 집합이 있음)에서 사용할 수 있다고 생각합니다.
반환 값을 가져 오는 것이 확실하지 않지만 매개 변수를 제공 할 수 있어야합니다.
C# 셸 명령에 대한 일부 참조는 here 및 here입니다.
이
는 BizTalk를 사용하지 마십시오 :
는 개인적으로 사용 가능한 세 가지 더 나은 옵션이 있습니다 생각합니다.
캠벨이 제안했듯이 대신 Windows 서비스를 사용하십시오.
기존의 BizTalk 프레임 워크 (로깅,보고 등 ...)를 활용하거나 BizTalk가 수행 할 워크 플로에 다른 작업이있는 경우에만 BizTalk를 사용하십시오. (모든 것을 하나의 플랫폼에 집어 넣는 것에 대한 논쟁이 있습니다. 한 가지만 위해 BizTalk을 사용한다면, 모든 것을 위해 if를 사용하십시오.하지만 그것은 다른 대화입니다).
슈레더의 논리를 콘솔 응용 프로그램과 BizTalk에서 호출 할 수있는 C# 클래스 라이브러리로 리 팩터합니다.
BizTalk에서 클래스 라이브러리를 호출하면 실행 파일을 호출하는 것이 훨씬 쉽고 깔끔하게 수행 할 수 있습니다.
오케스트레이션에서 서명 및 GACed 어셈블리를 참조하기 만하면 (오케스트레이션 변수로 생성) 표현식 모양에서 직접 호출 할 수 있습니다.
here은 기본 사항을 다루는 기사입니다. 추악한 세부 사항으로 들어가거나 모범 사례에 대한 토론을 제공하지 않습니다. Professional BizTalk Server 2006은 좋은 책입니다.
Campbell이 말했듯이 대부분의 기능은 순수한 BizTalk 기능으로 수행 할 수 있습니다.
아마도 옵션 2와 3이 원하는 것이 무엇이 가장 좋을까요? 이미 가지고있는 바이너리 파쇄 논리를 C# 클래스 라이브러리에 넣고 파일 모니터링, 오류 알림, 추적 및 다른 프로세스와의 통합을 담당하는 BizTalk 오케스트레이션에서이 논리를 호출합니다.
고맙습니다. 우리는 오늘 회의가 있었고 단지 이것을하기로 결정했습니다. 나는 이미 자신의 .DLL로 분쇄기를 작성했으며 .EXE는 .DLL에 대한 래퍼/로더 일 뿐이었다. 이제 BizTalk 및 인터페이스가 분쇄기에 사용될 어댑터 DLL을 작성하려고합니다. 링크를 가져 주셔서 감사합니다. –
또 다른 제안 ('간단하지 않은'영역으로 들어가는 것)은 사용자 정의 어댑터 (BT 어댑터 프레임 워크에 연결)로 슈레더를 구현하는 것입니다. 이는 무료로 많은 것을 제공합니다. 표현의 형태는 그렇지 않다. –