Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.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中显示Perl错误? 问题:_Perl_Azure_Strawberry Perl - Fatal编程技术网

如何在Azure中显示Perl错误? 问题:

如何在Azure中显示Perl错误? 问题:,perl,azure,strawberry-perl,Perl,Azure,Strawberry Perl,Perl脚本生成的错误不会在Azure web应用程序中显示或记录 复制步骤: 使用将草莓Perl安装到Azure web应用程序 该指南最相关的部分是,我已将Perl配置为.pl扩展的处理程序,使用参数为-MFCGI::IIS=do的Perl.exe 启用本地文件系统日志记录(错误级别:详细) 启用详细的错误消息和失败的请求跟踪 在浏览器中运行以下测试脚本: use strict; use warnings; use diagnostics; use CGI::Carp 'fatalsTo

Perl脚本生成的错误不会在Azure web应用程序中显示或记录

复制步骤:
  • 使用将草莓Perl安装到Azure web应用程序

    该指南最相关的部分是,我已将Perl配置为.pl扩展的处理程序,使用参数为
    -MFCGI::IIS=do
    Perl.exe

  • 启用本地文件系统日志记录(错误级别:详细)

  • 启用详细的错误消息和失败的请求跟踪

  • 在浏览器中运行以下测试脚本:

    
    use strict;
    use warnings;
    use diagnostics;
    use CGI::Carp 'fatalsToBrowser';
    
    use CGI;
    my $q = new CGI;
    print $q->header(-type => "text/plain");
    
    print "Hello, World!\n";
    
    die "This is a test";
    
    print "End of script.";
    
我的结果:
  • 脚本在“Hello,World!”之后停止(“脚本结束”和“这是一个测试”不显示)

  • 在/LogFiles目录中的任何日志文件中都找不到“这是一个测试”

我已经证实的事情
  • 草莓Perl在通过命令行执行时运行(使用Kudu)

  • 使用命令行运行时,脚本将生成预期结果:

    [Thu Mar 10 16:09:30 2016] azure-test.pl: This is a test at d:\home\site\wwwroot\cgi-bin\azure-test.pl line 12. Content-Type: text/plain; charset=ISO-8859-1 Hello, World! <h1>Software error:</h1> <pre>This is a test at d:\home\site\wwwroot\cgi-bin\azure-test.pl line 12. </pre> <p> For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. </p> [Thu Mar 10 16:09:30 2016]azure-test.pl:这是在d:\home\site\wwwroot\cgi bin\azure-test.pl第12行进行的测试。 内容类型:文本/纯文本;字符集=ISO-8859-1 你好,世界! 软件错误: 这是在d:\home\site\wwwroot\cgi-bin\azure-test.pl第12行进行的测试。 如需帮助,请将此错误消息发送给此网站的网站管理员 以及错误发生的时间和日期。

为什么我不能用Perl来查看错误呢?
Azure中的另一段代码失败,但Perl中没有。我需要查看Azure环境中生成的错误,以便对其进行故障排除。

通过调整*.pl扩展名的处理程序映射的附加参数,可以将错误发送到浏览器

特别是,
-MFCGI::IIS=eval
对我很有用

请注意,浏览器中仍然没有报告某些错误。例如,DBI数据库调用似乎存在问题,导致进程停止而不显示错误消息

可以使用失败的请求跟踪查看这些错误

可以在所有设置->诊断日志->失败请求跟踪下启用失败请求跟踪

生成的日志可通过FTP访问,地址为/LogFiles/W3SVC*/fr*.xml

要查看这些文件,请根据您的请求下载XML文件,并从同一目录下载freb.xsl。然后可以在XML查看器(如Internet Explorer)中查看日志XML文件

更多信息:


您正在使用
打印
,其中调用了
警告
模具
。第二,您将发送两次标题。第三,这可能与您的web服务器设置有关,而不是其他任何内容。找到日志所在的位置,找出您选择记录的内容。@SinanÜnür 1。生产代码使用
die
,此处使用
print
,因为我可以确认脚本中其他地方使用的
print
语句有效。修改为
警告
;行为没有改变。2.删除页眉打印语句;行为没有改变。3.我已经指出了在Azure中查找日志的位置(以及我的日志设置)。如果有一个不同的地方记录了这些错误,这将是一个可以接受的答案。所以我正在记录投票和接近投票。。。Azure配置是否与SO无关?如果是这样的话,在哪里发布这样的问题更好?你没有发布一个简短完整的脚本来演示这个问题。您需要将问题从您引入的所有混杂因素中分离出来。接近票数的是“太宽”。。。也就是说,“鉴于模糊和不完整的描述,有太多的事情可能是错误的,因此不值得费心”。你可以选择帮助别人帮助你。这取决于你。@SinanÜnür我已经重新组织了这个问题,并将复制步骤减少到最小。这样更好吗?