2016-04-13 97 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 –

相關問題