동적 인 콘텐츠를 스크래핑하기 위해 내 사이트를 PhantomJS와 통합하려고합니다. Process.Start를 통해이 작업을 수행하고 스크래핑 스크립트와 함께 PhantomJS를 시작합니다. 이것은 내 devmachine에서 잘 작동합니다.ASP.NET에서 Process.Start를 시작 하시겠습니까?
내 호스트에서 내가 갖고있는 신뢰 수준을 검사했으며 수준은 제한 없음으로 전체 신뢰보다 높습니까?
여전히 Process.Start에 대한 사용 권한이 거부되었습니다.
신뢰 수준에 제한이없는 이유는 무엇입니까?
[편집] System.ComponentModel.Win32Exception (0X80004005) : 액세스가 System.Diagnostics.Process.Start에서 System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo를 startInfo)에서 거부() 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"와 같습니다.
그런가요? 공유에서 뭔가를 시작하는 제한?
process.start를 호출하기 전에 사용중인 코드를 제공 할 수 있습니까? –