我正在尝试通过运行此代码在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运行时,我得到一个访问被拒绝的异常,其中包含jar尝试将日志文件写入的路径。我可以从命令行手动运行jar,日志文件没有问题。如何授予进程执行写文件等权限的权限?
答案 0 :(得分:0)
默认情况下,ASP.NET应用程序不会模拟访问该站点的用户的身份。通常,然后作为本地网络服务帐户运行,除非您特别使用不同的身份运行流程(您可以通过查看Environment.UserName
来确定其使用的身份)。
您可以设置网站(或使用模拟)在有权写入该位置的身份下运行,也可以向其当前使用的帐户提供写入权限。
答案 1 :(得分:0)
设置流程的工作目录解决了问题。
proc.StartInfo.WorkingDirectory = path;