在.Net中扩展Azure上的PhantomJs实例

时间:2014-10-09 07:13:32

标签: c# azure phantomjs

我使用像http服务器这样的PhantomJs。 我只有一个实例,每个请求都是按顺序执行的。 我想使用带有.Net框架的Windows Azure(如果可能的话)扩展PhantomJs http服务器实例

1 个答案:

答案 0 :(得分:2)

您可以托管自己的ASP.net应用程序,该应用程序使用preccess.start进行phantomjs 这将为每个请求创建phantomjs实例,并由IIS管理

 System.Diagnostics;
    var processStartInfo = new ProcessStartInfo
    {
        CreateNoWindow = true,
        RedirectStandardOutput = true,
        RedirectStandardInput = true,
        UseShellExecute = false,
        Arguments = "your.js plus any arguments here",
        FileName = "path/to/phantomjs.exe"
    };

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

    //pipe the output
    process.OutputDataReceived += (sender, args) => {
        //args.Data has output from phantomjs
    };


        process.Start();
        process.BeginOutputReadLine();
        process.WaitForExit(20000);
        process.CancelOutputRead();

如您所知,此解决方案无法在Azurewebsites上运行,因为目前Azurewebsites已禁用GDI +。