2011-03-08 1 views
0

XML 파일을 모니터링하기 위해 수신 메시지와 수신 포트를 설정했습니다. 나는 또한 내가는 BizTalk를 배포 할 때 즉시 새 파일이 수신 위치에서 수신됩니다로서,디렉터리에 새 xml 파일이있을 때 BizTalk 오케스트레이션을 사용하여 .NET 클래스 라이브러리를 호출하여 xml을 읽습니다.

System.Diagnostics.Process.Start 
     (@"C:\TEMP\XmlReader\XmlReader\bin\Release\XmlReader.exe"); 

을 사용하여 파일이 사라지고 아무 일도 발생하지 않습니다에 의해 .NET 클래스 라이브러리를 실행하는 표현 형태를 추가했다. 파일이 사라지고 위치를 전송하도록 이동하지 않는 포트를 수신 및 전송하는 다른 오케스트레이션 프로젝트가 있습니다.

+0

받은 위치와 오케스트레이션을 추적하고 Suspended 서비스 인스턴스와 이벤트 로그를 살펴보면 어떤 일이 발생했는지 알 수 있습니다. XMLReader는 자신의 클래스 라이브러리입니까? 그렇다면 서명하고 GAC에도 서명해야합니다. – StuartLC

+0

xmlreader.exe는 xml 콘텐츠를 읽습니다. xmlreader가 서명되었지만 GAC를 사용하지 않았습니다. – developer

답변

1

나는 당신의 논리를 잘 모릅니다. 그러나 수신 포트에서 게시 한 메시지와 오케스트레이션 사이의 구독을 올바르게 설정했다고 가정합니다. 오케스트레이션이 활성화 될 때까지 원래 파일 시스템 XML은 영원히 사라졌습니다. 사실 수신 위치가 활성화되고 사용되면 사라집니다. 파일 시스템에서 원본 XML 파일을 수동으로 읽으려고하면 오케스트레이션에서 성공하지 못합니다.

BizTalk에는 몇 가지 함정이 있습니다. 의심 스러울 때는 점진적 접근 방식을 고수하십시오.

  1. 관리 콘솔에서 바로 수신 포트 및 위치를 생성/활성화합니다 (지금은 VisualStudio를 잊어 버리십시오).
  2. XML (또는 무엇이든)로 전달
  3. 관리 콘솔을 사용하여 생성 된 메시지와 상태가 무엇인지 확인합니다.
  4. System.Diagnostics.Debug.WriteLine()

    문을 포함하는 오케스트레이션을 만들고 수신 포트에 가입.

  5. 메시지를 입력하고 DebugView을 사용하여 WriteLine 메서드 호출의 출력을 확인합니다.
0

사용자 의견을 잘못 이해하지 못하면 사용자 지정 xmlreader.exe를 사용하여 XML 문서를 읽고 BizTalk 오케스트레이션에 제출합니다. 이것은 정확히 BizTalk 수신 포트 + 수신 위치 (+ XmlPipeline)가 수행 할 것입니다.

내게는 xmlreader.exe와 BizTalk 수신 포트 + 수신 위치가 서로 작동하는 것처럼 보이는 문제가 있습니다.

들어오는 메시지에 특별한 처리를해야하는 경우 파이프 라인 구성 요소를 만들어야합니다.

BizTalk 관리 콘솔을 확인하십시오. 오케스트레이션이 수신하지 못했기 때문에 수신 된 모든 메시지가 일시 중지 될 수 있습니다.