問題:
Perl腳本生成的錯誤不顯示或記錄在Azure Web應用程序中。如何在Azure中顯示Perl錯誤?
重現步驟:
安裝草莓的Perl到天青web應用程序,使用this guide。
該指南最相關的部分是我將Perl配置爲.pl擴展名的處理程序,使用
perl.exe
,參數爲-MFCGI::IIS=do
。啓用記錄到本地文件系統(錯誤級別:詳細)。
啓用詳細的錯誤消息和失敗的請求跟蹤。
運行下面的測試腳本在瀏覽器中:
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.";
我的結果: 「你好,世界」 後
腳本會(不顯示「腳本結束」和「這是測試」)。
「這是測試」在/ LogFiles目錄中的任何日誌文件中都找不到。
事情我已驗證
草莓的Perl當經由(使用捻)命令行執行運行。
當使用命令行運行,該腳本會產生預期的結果:
[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>
爲什麼我就不能使用Perl來查看錯誤?
代碼的另一部分在Azure中失敗,但在Perl中失敗。我需要查看Azure環境中生成的錯誤,以便對其進行故障排除。
您正在使用'print'其中'warn'或'die'被調用。其次,你正在發送標題兩次。第三,這可能與您的Web服務器比其他設置更重要。找到日誌的位置,找出你正在選擇的日誌。 –
@SinanÜnür1.生產代碼使用'die','print'在這裏使用,因爲我可以確認在腳本的其他地方使用了'print'語句。修改爲「警告」;行爲沒有變化。 2.刪除標題打印語句;行爲沒有變化。 3.我已經指出了我在Azure中查找日誌的位置(以及我的日誌設置)。如果存在記錄這些錯誤的不同位置,那麼作爲答案是可接受的。 – AaronSieb
因此,我得到了選票和關閉投票...是否爲Az的Azure配置脫離主題?如果是的話,哪裏可以發佈這樣的問題? – AaronSieb