[英]PHP Azure WebJob - Failing With Exit Code 255 (But Working Fine On Kudu)
我已經開發了一個PHP腳本,該腳本可以生成簡單的財務報告,並通過SMTP(使用PHPMailer庫)發送報告。
我正在嘗試使用Azure Web Jobs托管和執行腳本,但是不幸的是,每次運行該作業都會失敗。
WebJob位於Azure上的wwwroot\\App_Data\\jobs\\triggered\\send-sales-report\\send_sales_report.php
中。
該腳本的內容如下: 可以看出,該腳本導入了許多其他腳本:
<?php
try
{
include "./../../../../inc/class.EmailMessage.inc";
include "./../../../../E-Mail.php";
$message = new EmailMessage('sales_report', array());
SendOrderEmail('Sales Report', $message->render(), 'name@emailprovider.com', 'Recipient Name');
}
catch (Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
?>
另外,上述文件的目錄結構如下:
wwwroot
|___App_Data
|___jobs
|___triggered
|___send-sales-report
|___send_sales_report.php
|___inc
|___class.EmailMessage.inc
|___emails
|___sales_report.php
|___E-Mail.php
當我使用Azure門戶(手動並按計划)運行PHP WebJob時,它以退出代碼255失敗; 但是,當我在Azure上使用Kudu控制台執行腳本時,效果很好。 此外,我還本地復制了運行環境,並且運行良好。
任何幫助深表感謝。
我建議您為您的應用啟用PHP錯誤日志。 創建一個.user.ini
文件,並添加以下內容:
log_errors = on
請參閱此博客文章: 啟用PHP錯誤日志記錄
PHP錯誤日志的默認位置為: D:\\home\\LogFiles\\php_errors.log
這應該有助於進一步進行。
255
是錯誤。 請參閱PHP退出狀態255:這是什么意思? 。 因此,您可能在PHP腳本中遇到致命錯誤。
通過使用register_shutdown_function
函數可以捕獲致命錯誤。 以下代碼示例可用於在發生致命錯誤時記錄該錯誤。
<?php
register_shutdown_function('shutdown_function');
try
{
include "./../../../../inc/class.EmailMessage.inc";
include "./../../../../E-Mail.php";
$message = new EmailMessage('sales_report', array());
SendOrderEmail('Sales Report', $message->render(), 'name@emailprovider.com', 'Recipient Name');
}
catch (Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
function shutdown_function()
{
$e = error_get_last();
print_r($e);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.