Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Azure应用程序服务的ASP.NET核心中运行Phantomjs.exe_C#_Azure_Asp.net Core_Phantomjs_Asp.net Core Webapi - Fatal编程技术网

C# 在Azure应用程序服务的ASP.NET核心中运行Phantomjs.exe

C# 在Azure应用程序服务的ASP.NET核心中运行Phantomjs.exe,c#,azure,asp.net-core,phantomjs,asp.net-core-webapi,C#,Azure,Asp.net Core,Phantomjs,Asp.net Core Webapi,我在.Net Core 2.0.0中实现了一个ReSTful API,并托管在Azure的应用程序服务中 我试图让其中一个控制器使用PhantomJS.exe生成PDF文件 所以我创建了这个方法 控制器的摘要如下所示 System.Diagnostics.Process pProcess = new System.Diagnostics.Process(); pProcess.StartInfo.FileName = config.pjlocation;

我在.Net Core 2.0.0中实现了一个ReSTful API,并托管在Azure的应用程序服务中

我试图让其中一个控制器使用PhantomJS.exe生成PDF文件

所以我创建了这个方法

控制器的摘要如下所示

        System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
        pProcess.StartInfo.FileName = config.pjlocation;
        pProcess.StartInfo.Arguments = ....; //argument
        pProcess.StartInfo.UseShellExecute = false;
        pProcess.StartInfo.RedirectStandardOutput = true;
        pProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        pProcess.StartInfo.CreateNoWindow = true; //not diplay a windows
        pProcess.Start();
        output = pProcess.StandardOutput.ReadToEnd(); //The output result
        pProcess.WaitForExit();
当我在本地使用

dotnet run
在与azure使用的.Net Core版本相同的windows计算机上

但是,当部署到azure时,该服务在很长一段时间内无法生成任何响应,并返回此错误

指定的CGI应用程序遇到错误,服务器 终止进程

我发现一些痕迹的唯一地方是azure中的实时日志流,其中一个HTML被azure转储到控制台中

HTTP错误502.3-指定CGI应用程序的网关错误 遇到错误,服务器终止了进程

这里发生了什么?有人遇到过类似的问题吗?如何进一步调试


你可以从以下方面得到答案:PhantomJS在Azure WebApp上不受支持

其他不受支持的方案:

PhantomJS/Selenium:尝试连接到本地地址,并使用GDI+

根据,支持以下PDF生成器。如果WebApp不是唯一的选择,您可以参考

SQL Reporting framework:要求站点在Basic或更高版本中运行(这并不是说当前无法运行)

EVOPDF:有关供应商解决方案,请参阅

Telerik reporting:要求站点以Basic或更高版本运行。更多信息请点击这里

Rotativa/wkhtmltopdf:要求站点运行在基本或更高版本。

NReco PdfGenerator(wkhtmltopdf):需要订阅计划基本或更高版本


请注意,我已经检查了所有路径是否正确解析。如果路径不正确,我会收到有意义的错误。您检查过Azure级别日志吗?可以在Azure门户中找到它们。您是否添加了应用程序洞察?这也确实有助于调试。使用Linux workers部署到应用程序服务(自带容器)。Windows风格的应用程序服务不允许您绑定到任意端口,这正是PhantomJS试图做的事情,但失败了-@evisnobu切换到Linux似乎太费劲,风险太大。我可能会尝试其他声称支持的pdf生成器。助教