簡體   English   中英

Windows Server 2008上的System.Diagnostics.Process.Start()問題

[英]System.Diagnostics.Process.Start() problems on Windows Server 2008

我需要從ac#.net應用程序啟動第3方Java應用程序。 最初,我想從asp.net網站上執行此操作,但是在遇到權限/特權問題后,我開始嘗試從Windows服務執行此操作,因為它以系統用戶身份運行,希望我能解決我的問題。 哦,是的,嘗試在Windows 2008服務器上運行此程序時出現了我的問題。 在我的Windows 7開發環境中一切都很好。

我自然會在這些論壇和其他論壇中搜尋答案,而我發現沒有任何幫助,因此請招待我。

我有要在批處理文件中運行的命令,並且正在使用以下代碼啟動它。

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二進制文件,我傳遞給它的文件等)更改為故意不正確的路徑,則會抱怨。

我嘗試以不同的用戶身份運行此過程,即可以用來登錄服務器並手動運行命令的用戶。 我已經從服務屬性菜單中授予了對桌面的服務訪問權限。

如果有人對這里發生的事情有任何想法,或者甚至有一些關於如何進行診斷的提示,將不勝感激。

您必須為您的應用創建清單或關閉UAC。

發生的事情是,由於它不是經過簽名的可執行文件,因此UAC阻止您的服務運行/啟動其他應用程序。 這就是清單的來源。...在Windows SDK文檔(Applicaiton Manifest)中查找清單。

之前我曾遇到過這樣的問題,最煩人的是沒有錯誤: http//msdn.microsoft.com/en-us/library/bb756929.aspx和此處: http : //technet.microsoft。 com / zh-CN / library / xc3tc5xx(VS.80).aspx(更好的描述)

有關清單的教程: http : //msdn.microsoft.com/zh-cn/library/bb756973.aspx(很好)

Windows應用程序權限和UAC(Vista,2008年7月7日,R2) http://msdn.microsoft.com/en-us/library/bb756996.aspx

暫無
暫無

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

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