我正在尝试将我的网站与PhantomJS集成,以便抓取动态内容。 我通过Process.Start执行此操作,并与我的抓取脚本一起启动PhantomJS。 这对我的devmachine非常有用。
在我的主机上,我已经检查了我的信任级别,级别是 Unrestricted ,高于完全信任,对吗?
但是,我在Process.Start上获得了许可。
为什么当信任级别不受限制时呢?
[编辑] System.ComponentModel.Win32Exception(0x80004005):在System.Diagnostics.Process.Strocess()的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”
这是问题吗?限制在股票上开始的东西?
答案 0 :(得分:1)
你可以试试
http://support.microsoft.com/default.aspx?scid=kb;en-us;317012
或者,它可能是文件夹安全问题。保存文件的文件夹必须具有“修改”用户权限。运行IIS进程的IIS_WPG,该用户属于Users组,该用户必须对该文件夹具有Modify访问权限。