2013-08-06 3 views
0

Я пытаюсь интегрировать свой сайт с PhantomJS для очистки динамического содержимого. Я делаю это через Process.Start и запускаю PhantomJS вместе с моим скриптом. Это отлично работает на моей devmachine.Process.Start в ASP.NET?

На моем хозяине я изучил, что у меня есть уровень доверия, и уровень Неограниченный, что выше полного доверия, не так ли?

Тем не менее, я получаю разрешение, отклоненное на Process.Start.

Почему это, когда уровень доверия неограничен?

[Редактировать] System.ComponentModel.Win32Exception (0x80004005): отказано в доступе на System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) в System.Diagnostics.Process.Start() в StrengthTracker.Controllers.AppController.Index()

код для выполнения процесса является:

 string path = Server.MapPath("."); 
     path = Directory.GetParent(path).FullName; 
     path = path + "\\data"; 

     Response.Write("path:" + path); 

     string a = "\"" + path + "\\scrape.js" + "\" \"" + url + "\""; 
     var processStartInfo = new ProcessStartInfo 
     { 
      CreateNoWindow = true, 
      RedirectStandardOutput = true, 
      RedirectStandardInput = true, 
      UseShellExecute = false, 
      Arguments = a, 
      FileName = path + "\\phantomjs.exe" 
     }; 

     var process = new Process 
     { 
      StartInfo = processStartInfo, 
      EnableRaisingEvents = true 
     }; 

     //pipe the output 
     process.OutputDataReceived += (sender, args) => outputBuilder.Append(args.Data); 

     try 
     { 
      process.Start(); 
      process.BeginOutputReadLine(); 
      process.WaitForExit(20000); 
      process.CancelOutputRead(); 
     } 
     catch (Exception x) 
     { 
      return Content(x.ToString()); 
     } 


     return Content(outputBuilder.ToString()); 

[править снова] сайта, кажется, находится на сетевой ресурс на моем хосте. Путь выглядит так «\ foo \ bar \ bla»

Это проблема? ограничения, начинающиеся с чего-то на долю?

+0

Можете ли вы предоставить код, который вы используете, перед вызовом process.start –

ответ

1

Вы можете попробовать
http://support.microsoft.com/default.aspx?scid=kb;en-us;317012

или иначе, это может быть проблемой безопасности папки. В папке, в которой хранятся файлы, должен быть установлен «Изменить доступ к пользователям». IIS_WPG, в котором выполняется IIS Process, этот пользователь принадлежит группе Users, этот пользователь должен иметь доступ к Modify в папке.

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