2013-11-27 75 views
2

我試圖通過運行該代碼運行在C#中的jar:當罐子運行我得到的罐子試圖寫入日誌文件的路徑拒絕訪問異常給進程權限編程

System.Diagnostics.ProcessStartInfo processInfo = new System.Diagnostics.ProcessStartInfo(pathForjre+"java.exe", "-jar "+jar+" "+argsforjar); 
processInfo.CreateNoWindow = true; 
processInfo.UseShellExecute = false; 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo = processInfo; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.StartInfo.RedirectStandardError = false; 

string out = ""; 
proc.Start(); 
proc.WaitForExit(); 
while (!proc.StandardOutput.EndOfStream) 
     out += proc.StandardOutput.ReadLine(); 
proc.Close(); 
return out; 

至。我可以從命令行手動運行jar,並且日誌文件寫入沒有問題。我該如何授予流程權限才能執行寫入文件等操作?

+0

你是如何啓動/運行C#代碼? –

+0

你是否有機會錯過帖子中的asp.net標記? –

+1

檢查工作目錄,也許你正在嘗試寫入不同的位置 –

回答

0

設置進程的工作目錄解決了問題。

proc.StartInfo.WorkingDirectory = path; 
0

默認情況下,ASP.NET應用程序不會模擬正在訪問該網站的用戶的身份。通常,然後以本地網絡服務帳戶運行,除非您專門以不同的身份運行該進程(可以通過查看Environment.UserName來確定它正在使用的身份)。

您可以設置站點(或使用模擬)在有權寫入該位置的標識下運行,也可以向其當前正在使用的帳戶寫入權限。