2015-04-06 433 views
2

我正在将一些内部部署应用程序移动到Azure,并一度与GhostScript一起努力。我们使用GhostScript将PDF转换为多页TIFF。目前这部署在Azure虚拟机中,但从管理的角度来看,它似乎是一个WebApp和WebJob将会更适合。在我的所有测试中,我一直无法找到工作来运行GhostScript exe。Azure中的GhostScript

有没有人能够在WebJob中运行GhostScript或任何第三方exe文件?

我已经尝试将GhostScript exe,lib和dll打包到ZIP文件中,然后解压缩到Path.GetTempPath(),然后使用新的System.Diagnostics.Process以所需的参数运行该exe文件 - t工作 - 该过程拒绝以-1073741819的退出码开始。

任何帮助或建议,将不胜感激。

+0

AFAIK GhostScript需要安装或某些手动设置(注册表和/或环境变量)。它也在pdf处理过程中创建临时文件。而且,最糟糕的是,WebJobs在IIS控制下运行,导致其他安全性问题。所以,恕我直言,继续使用虚拟机。 – 2015-04-07 06:00:45

+0

@FabrizioAccatino,感谢您抽出宝贵时间回复。我刚刚能够成功地使用webjob将PDF转换为tiff。我已经将GhostScript文件包含在一个子目录中 - 我发现这篇文章(从一个不相关的搜索)http://stackoverflow.com/questions/26840167/deploy-subfolders-for-azure-webjob,有一个错误,防止子文件夹在VS中发布。一旦我通过FTP上传内容,一切工作 – markpirvine 2015-04-07 07:49:24

+0

非常有趣。我认为这是行不通的。 :)但是,我不认为webjobs是运行ghostscript的正确环境。想想字体:你怎么安装它们?如果您的pdf没有嵌入字体,您需要在服务器上显示字体,以便将pdf完美转换为tiff。 – 2015-04-07 12:40:15

回答

0

我们在这里工作: Converting PDFs to Multipage Tiff files Using Azure WebJobs。关键是将Ghostscript程序集放入项目的根目录并设置“始终复制”。这允许他们在发布项目时被推送到Azure服务器,并最终放置在正确的位置。

此外,我们需要将要由Ghostscript处理的文件下载到本地Azure WebJob临时目录中。这是通过使用以下代码发现的:

Environment.GetEnvironmentVariable("WEBJOBS_PATH");