从我的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的?
外包装目前没有帮助我。包装将最终与我所做的一样 - 在wkhtmltopdf.exe上调用Process.Start。我基本上写了自己的包装。 – Marek
这是一个包含DLL而不是可执行文件的包装。所以它不会为wkhtmltopdf.exe调用Process.Start –