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
Azure Web角色启动上的PhantomJS Web服务器exe_Azure_Phantomjs_Azure Web Roles_Azure Worker Roles - Fatal编程技术网

Azure Web角色启动上的PhantomJS Web服务器exe

Azure Web角色启动上的PhantomJS Web服务器exe,azure,phantomjs,azure-web-roles,azure-worker-roles,Azure,Phantomjs,Azure Web Roles,Azure Worker Roles,我正在尝试在Azure Web(或Worker)角色上启动PhantomJs的本地Web服务器实例,以便与HighCharts一起用于渲染服务器端图表图像 PhantomJs只是一个简单的.exe,可以通过以下命令作为Web服务器启动: phantomjs-highcharts-convert.js-主机127.0.0.1-端口3003 。。。然后可以针对它发出本地HTTP POST请求 我已将此命令包含在startup.cmd批处理脚本中,该脚本配置为在通过ServiceDefinition.

我正在尝试在Azure Web(或Worker)角色上启动PhantomJs的本地Web服务器实例,以便与HighCharts一起用于渲染服务器端图表图像

PhantomJs只是一个简单的
.exe
,可以通过以下命令作为Web服务器启动:

phantomjs-highcharts-convert.js-主机127.0.0.1-端口3003

。。。然后可以针对它发出本地HTTP POST请求

我已将此命令包含在
startup.cmd
批处理脚本中,该脚本配置为在通过
ServiceDefinition.csdef
发布时与我的Azure Web角色一起执行:

<Startup>
  <Task commandLine="startup.cmd" executionContext="elevated" taskType="background" />
</Startup>
据我所知,这似乎在启动时执行得很好,但是,进程并没有保持运行。它只是执行并关闭。例如,我可以遥控进入框中,找到部署并手动执行
startup.cmd
(其中命令窗口打开并保持打开状态),一切正常

如何在实例启动时执行PhantomJs exe Web服务器,使其继续运行且不关闭


我曾尝试在
ServiceDefinition.csdef
声明中将
taskType
设置为
simple
background
,但它似乎没有改变任何东西。

如果它正在执行,则可能是一个时间问题。您可以添加如下内容:

 ping 1.1.1.1 -n 1 -w 300000 > nul
在执行脚本之前

您还可以通过管道发送到日志文件,这样,如果它正在执行,您就可以看到它在做什么。>>log.txt


如果它不执行,我可能会查看在后台执行且不交互的路径。

结果表明,我没有将支持的
.js
文件设置为“复制到输出目录”,因此
startup.cmd
无法找到它们


感谢Steve提出的输出日志建议,这让我看到了找不到“highcharts convert.js”的错误。

我不明白你所说的时间问题是什么意思,也不明白ping会如何缓解这个问题。你能解释一下吗?我在
startup.cmd
中添加了一些日志,以确认它在启动时执行。是的。我还通过管道将phantomjs.exe调用的日志记录到日志中,但它没有记录该行的任何内容。我遇到了一些类似的问题,即依赖项没有像您一样启动,如果我以后完美地运行它,但如果启动运行的与它调用的完全相同,但它没有完成,因为box仍在运行所有内容。ping本质上是在其他服务启动时的暂停,在我的情况下,是在配置网站和应用程序时。我不知道phantom,它登录到哪里。如果以交互方式运行,您可能会在屏幕上看到输出?尝试ping延迟,似乎没有帮助。当我手动运行exe时,确实会看到屏幕输出。我猜如果我使用管道输出START命令,应该会记录这些内容?我删除了
START
,并且能够通过调用.exe获得一些记录的输出。这让我找到了问题所在。见我贴出的答案。谢谢作为Web服务器启动PhantomJS的经验如何?我一直在创建一个新的c#进程来启动PhantomJS,我希望您能尝试改进性能。看起来PhantomJS仍然将其标记为“实验性”的,几个月来,他一直在夜间工作中使用它。没问题。你对PhantomJS进程陷入困境有任何问题吗?您知道如何在不进行完全角色回收的情况下重新启动PhantomJS进程吗?我有一个azure端点正在ping phantomjs服务器的状态,但是如果出现问题,我不知道如何在不完全重启vm的情况下重启phantomjs。我没有必要处理这个问题,对不起。
 ping 1.1.1.1 -n 1 -w 300000 > nul