我正在尝试将我的网站与 PhantomJS 集成以抓取动态内容。我通过 Process.Start 执行此操作,并将 PhantomJS 与我的抓取脚本一起启动。这在我的开发机器上效果很好。
在我的主机上,我检查了我的信任级别,级别是Unrestricted,高于完全信任,对吗?
不过,我在 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"
那是问题吗?限制在共享上启动某些东西?