簡體   English   中英

PHP Azure WebJob-退出代碼255失敗(但在Kudu上工作正常)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM