2013-11-27 35 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来确定它正在使用的身份)。

您可以设置站点(或使用模拟)在有权写入该位置的标识下运行,也可以向其当前正在使用的帐户写入权限。