[英]Process Start in IIS
想要在應用程序目錄中執行一個 exe,在開發系統中它工作正常。 在IIS中,它沒有被執行,我嘗試了以下幾點:
將默認應用程序池設置為本地系統
設置defualtpool,NETWORK_SERVICE,所有人都可以訪問exe
啟用 32 位應用程序到應用程序池
服務器版本:Windows Server 2012
IIS 版本:IIS 8.0
下面是我的代碼
p.StartInfo = new ProcessStartInfo();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "wkhtmltopdf\\wkhtmltopdf.exe";
string arg1 = "";
arg1 = "www.google.com" + " test.pdf";
p.StartInfo.Arguments = arg1;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.WaitForExit(60000);
p.Close();
p.Dispose();
確保生成 pdf 文件的位置“每個人都可以訪問它”
看來您正試圖在您的 iis 服務器上將 html 數據轉換為 pdf 文件。 確保 IIS 服務器可以訪問您嘗試轉換的站點“檢查您是否可以在 IIS 服務器上使用 IE 訪問這些站點,因為可能存在代理問題”
考慮設置您的 exe 的工作路徑:
p.StartInfo.WorkingDirectory = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "wkhtmltopdf";
如果exe在內存中,還要檢查任務管理器。 有時,當批處理出現低級錯誤時,會打開一個提示,而 IIS 不會捕獲它,因此該進程在內存中被凍結。
還要考慮在 exe 中設置日志以了解出了什么問題。
我有類似的問題。 解決了將 exe 移動到 IIS 應用程序之外的另一個文件夾中的問題。 這個文件夾應該有執行權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.