我需要從c#.net應用程序啓動第三方Java應用程序。最初我想從一個asp.net網站做到這一點,但遇到權限/特權問題後,我試圖從一個Windows服務做到這一點,因爲它作爲系統用戶運行,我希望這可以消除我的問題。哦,是的,當我試圖在Windows 2008服務器上運行時遇到問題。在我的Windows 7開發環境中一切都很好。Windows Server 2008上的System.Diagnostics.Process.Start()問題
當然,我已經搜索這些論壇和其他人的答案,沒有發現我已經找到了幫助,所以請招待我。
我有我想要在批處理文件中運行的命令,並使用下面的代碼來啓動它。
ProcessStartInfo psi = new ProcessStartInfo(filePathToBatchFile);
psi.Arguments = "arguments for batch file..."
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.RedirectStandardInput = true;
Process p = Process.Start(psi);
我正在運行一個批處理文件,因爲我想確保發生了什麼事情。我確保所有的變量和文件路徑都是正確的,批處理文件確實在運行。我可以把它做到像xcopy文件這樣的其他東西,我可以從命令行自己運行命令,它工作正常。沒有任何異常被拋出,並且沒有輸出。如果我改變了路徑(到java二進制文件,我傳遞給它的文件等)故意不正確的路徑,然後它抱怨。
我試過以不同的用戶運行這個進程,也就是我可以用來登錄到服務器並手動運行命令的那個用戶。我已經從服務屬性菜單中提供了對桌面的服務訪問權限。
如果任何人有任何關於這裏發生的事情的想法,甚至有一些關於如何診斷這個問題的提示,我將非常感激。
您能提供來自RedirectStandardOutput和RedirectStandardError的輸出嗎?如果沒有關於發生的事情的一些事實,我們可以「永恆地招待」你。因爲它是不正常的,所有這一切建議http://stackoverflow.com/questions/361097/c-service-cannot-execute-batch-file應導致正常執行。 – apros 2011-01-28 16:53:56
沒有從RedirectStandardOutput或RedirectStandardError輸出。 – rmsylvester 2011-01-31 14:44:44