2013-11-27 2 views
2

Я пытаюсь запустить баночку в C#, запустив этот код:разрешение процесса Дает программный

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; 

При запуске баночки я получаю доступ запрещен исключение с пути баночка пытается записать файл журнал к. Я могу вручную запустить банку из командной строки, и файл журнала не создает никаких проблем. Как предоставить процессу разрешение делать такие вещи, как запись файла?

+0

Как вы запускаете/запускаете код C#? –

+0

Вы случайно не заметили тег asp.net из сообщения? –

+1

Проверьте рабочий каталог, возможно, вы пытаетесь записать в разные местоположения. –

ответ

0

Установка рабочего каталога процесса устраняет проблему.

0

Приложения ASP.NET по умолчанию не олицетворяют личность пользователя, попавшего на сайт. Обычно он запускается как локальная учетная запись сетевой службы, если вы специально не выполняете этот процесс под другой личностью (вы можете определить, какая личность используется, просмотрев Environment.UserName).

Вы можете настроить сайт (или использовать олицетворение) для работы под идентификатором, который имеет разрешение на запись в это место, или предоставить разрешение на запись для учетной записи, которую он использует в настоящее время.

Смежные вопросы