2016-04-13 70 views
1

从我的Web应用程序中解析到Windows Server 2012上运行wkhtmltopdf.exe时出现问题。看起来像我的应用程序池没有权限执行此操作,尽管web应用程序和exe不会引发任何错误。它只是不执行。从Windows Server 2012 R2中的.net Web应用程序执行* .exe

是我到目前为止已经完成:

  • 授予完全权限的应用程序池的EXE和性能有关的所有目录 - >安全
  • 试图在应用程序池使用其他标识除了应用池标识
  • 试图通过WCF和Windows服务
  • 坐落在工作目录不是只读
  • 设置EXE为administr运行时执行的所有文件,文件夹ator

我用procexp来查看exe是否被执行,但没有执行 - 没有wkhtmltopdf.exe进程出现在后台。我不需要显示UI,我只需要在背景上运行它,并让它完成它的工作 - 使用html生成PDF。

当我从命令行手动运行此exe时,它工作正常。 我还将我的web应用程序部署到另一台win 2012 r2服务器上,使用默认设置和应用程序池标识创建了新的应用程序池,为文件/文件夹和exe设置权限。令人惊讶的是它在那里工作。

所以我觉得我错过了一些东西,但我无法弄清楚。我认为第一台服务器在ASPUSER或IIS或管理员权限等方面有某种特殊的配置。

有谁知道如何确定应用程序池是否对其用户具有* .exe执行权限?或者,这个问题似乎对某人来说很熟悉?是否有可能明确告诉IIS或应用程序池不要运行exe的?

回答

0

假设你正在使用C#或VB.NET: 请参阅:How to use wkhtmltopdf.exe in ASP.net

您可以使用.NET的DLL包装,这在我看来是一个清洁的解决方案,然后执行从C#或VB.NET EXE文件。这也允许您调试调用。

+1

外包装目前没有帮助我。包装将最终与我所做的一样 - 在wkhtmltopdf.exe上调用Process.Start。我基本上写了自己的包装。 – Marek

+0

这是一个包含DLL而不是可执行文件的包装。所以它不会为wkhtmltopdf.exe调用Process.Start –

相关问题