簡體   English   中英

服務器端應用程序無法運行命令

[英]Server-side application fails to run command

我有一個已經部署在Azure虛擬機中的ASP.NET應用程序。 情況如下:

該應用程序OCREngine與其他第三方應用程序一起部署在服務器上。 通過使用對Web服務的服務引用在服務器上執行OCREngine。 大多數情況下,它運行良好。 但是有一個例外:執行分支之一不會運行它需要運行的程序。 兩個分支都必須運行一個程序(兩個都以相同的方式運行),但是一個分支起作用,而另一個分支則沒有。

這有效: CleanJPEG.exe

proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "CleanJPEG.exe";
proc.StartInfo.Arguments = "\"" + tempPages + "Color Info.JPEG\"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();

而且這個沒有: cpctool.exe

proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "cpctool.exe";
proc.StartInfo.Arguments = "\"" + file + "\" -o \"" + tempPages + "page.tiff\"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();

它們都在同一個文件夾中,該文件夾具有AppPool的完全權限,%TEMP%也是如此。

如果我從服務器運行該應用程序,則一切正常。 但是,當我通過Web服務運行它時,會創建cpctool.exe的一個實例(可以在任務管理器的“后台”進程中看到),但是它沒有完成它的工作。 因此,OCREngine的執行永遠不會完成。

這最后一部分使我認為這是權限問題,但是我不知道要賦予權限什么。

我在cpctool.exe上運行“ 文件夾更改視圖 ”,它顯示了對存儲文件的文件夾的訪問權限,並且一個文件正在%TEMP%中保存(這很有趣,在服務器上運行“文件夾更改視圖”時不會出現)。

誰能想到任何需要我忘記的特殊文件夾?

您完全正確地專注於權限,因為通常這是問題所在。

如果EXE進程啟動且不執行任何操作,則它可能僅用於交互目的,並提示您執行某些操作。

看着這個頁面說:

首次運行CPCTool.exe時,系統會提示用戶閱讀/接受笛卡爾的用戶協議-必須接受該協議,否則轉換器將無法工作。

我認為這就是它的作用。 嘗試以應用程序池用戶身份登錄,啟動程序並接受協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM