在非交互式Windows服务下运行PDFTron

时间:2016-01-18 10:07:38

标签: c# windows-services pdftron

PDFTron是第三方库,用于将文件从一个扩展名转换为pdf文档。

我们已成功在多个场景和操作系统中使用它。

现在,随着我们向TFS等自动构建系统发展,我们正在尝试将pdf转换作为测试阶段的一部分 我们尝试了两种方法,使用标准的UnitTest,我们尝试了由PowerShell脚本调用的.Exe文件。以下任何一个都没有成功运行并抛出以下错误:

Unhandled Exception: pdftron.Common.PDFNetException: Exception:
 ○ Message: An error occurred while converting the file.
 Detailed error:
 ○Document failed to open
 ○ Conditional expression: false
 ○ Filename   : Convert.cpp
 ○ Function   : trn::PDF::Convert::ToPdf
 ○ Linenumber : 1825

 at pdftron.PDF.Convert.ToPdf(PDFDoc in_pdfdoc, String in_filename)
 at ImageComapareTool.Program.Main(String[] args)
 Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace:    at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

从构建服务器手动运行可执行文件\ powershell脚本可以正常工作。这导致我们认为在Windows服务下运行时这是一个问题

我们遇到了this文档,但由于我们在本地用户下运行该服务,因此无法给出任何好的假设。

关于指向正确方向的可选解决方案的任何线索都会有所帮助

1 个答案:

答案 0 :(得分:0)

最终,在尝试了Pdftron或psexec运行的实验构建等多个方向后,我们以交互模式运行TFS服务,这意味着实际用户必须登录到TFS Build服务器....所以&#39 ;它不是最方便的解决方案,因为它非常脆弱,但至少它起作用。

combined representation