문제

간단한 콘솔 응용 프로그램을 사용하여 InfoPath 양식을 PDF 파일로 변환합니다. 여기에 내가 이것에 대해 어떻게 가는지에 대한 간략한 요약이 있습니다.

요약 : 콘솔 응용 프로그램은 Windows 양식을 만듭니다. 양식이로드 될 때 (modally) i이 창에 InfoPath 컨트롤 (Microsoft.Office.InfoPath.FormControl)을 추가합니다. 그 시점에서 InfoPathControl.Open (MyInfoPathFileStream)이라고 부릅니다. 이 모든 것은 forloop에서 수행됩니다.

문제 : 무작위로 응용 프로그램은 예외를 던지게합니다 (치명적인 실패, 힙, 손상된 등)을 던지고 때로는 오류를 던지지 않고 가끔씩 멈추게됩니다. 로깅 및 디버깅은 InfoPathControl.Open (MyInfoPathFileStream) 호출에 매달려있는 것으로 믿게 해 왔습니다. 분명히 자동화 된 프로세스의 경우 이것은 받아 들일 수 없습니다.

시도 (그러나 실패한) 해결책

  • STA (Store) 스레드를 사용하고 Thread.Join을 사용하여 생성 된 각 폼을 포장했습니다. 이것은 com과의 문제로 인해 일하지 않았습니다.
  • IT 자체 응용 프로그램 도메인에서 루프의 각 반복을 포장했습니다. 이것은 한 정도까지 일했지만 AppDomains의 성격이 아직 동기식이기 때문에 멈춤 숫자 오류의 문제를 해결하지 못할 것입니다. 또한, 이상하게, 그것은 항상 COM 객체가 던져있는 예외를 항상 잡을 수있는 것은 아닙니다.
  • 마지막으로, 타이머가 만료되면 예외를 던지기 위해 타이머를 양식 스레드에 넣으려고 시도했습니다. 지금까지 나는 이것이 작동하는 경우 어느 쪽으로든 증명할 수 없었습니다.

    어떤 아이디어가 이미이 시간에 좋은 시간을 보냈던 것처럼 많이 감사 할 것입니다.

    감사합니다!

도움이 되었습니까?

해결책 2

결국 솔루션은 성공 코드, 실패 및 특정 유형의 오류를 위해 리턴 코드 설정으로 IT 자체 실행 파일에서 InfoPath 변환 프로세스를 실행하는 것이 었습니다.이것은 시간 초과로 두 번째 실행 파일에 의해 호출되었습니다.전환이 일정 기간 내에 성공하지 못하면 통화 실행 파일에 의해 사망 할 것입니다.이것은 궁극적으로 InfoPath 자동화 라이브러리 내의 문제를 해결하지는 않지만 실패하지 않고 수행 해야하는 작업을 수행합니다.

다른 팁

불행히도 당신이하려는 것은 내부적으로 비용이 많이 드는 노력이 될 것입니다.다음은 당신이 찾고있는 것을하는 널리 받아 들여지는 도구를 가리키는 링크입니다.

http : //social.technet.microsoft.com/forums/da-dk/sharepoint2010Customization/thread/528C3459-074F-43F7-A7A1-D4A169B27C93

이것이 당신이 당신 안에있는 모든 것에 대항하는 것을 알고있는 소프트웨어 엔지니어로서 당신이 당신의 모든 것에 대항하는 소프트웨어 엔지니어로서 당신을 알게되면 알려 드리겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top