如何在Azure fastCGI上查看实际错误?

时间:2011-01-28 15:35:41

标签: debugging azure fastcgi azure-storage

我在Azure fastCGI上访问blob存储时遇到通用服务器错误。

错误是: 500内部服务器错误。 您正在查找的资源存在问题,无法显示。

以下是代码。此代码在本地测试中运行良好,并且在Azure上上传的所有文件都可以正常工作。

有谁能告诉我如何调试和查看实际错误?

<pre><?php 
  error_reporting(E_ALL); 
  header('Content-type: text/html');
    echo 'C2, Start';
    require_once('Microsoft/WindowsAzure/Storage/Blob.php'); 

    $client = new Microsoft_WindowsAzure_Storage_Blob(
                    "blob.core.windows.net", 
                    "xxxxxxxxxx", 
                    "yyyyyyyyyyyyyyy==" 
                    ); 

  $filename= getcwd() . '\folders.txt'; 

  echo $filename . '<br>';  

  if ($client) {
    $client->getBlob('setup', 'folders.txt', $filename); 
        echo 'Blob Load ok! <br>';  
  } else {
    echo 'Blob Storage Error <br>';  
  }
echo ', END';  
?></code>

感谢。

3 个答案:

答案 0 :(得分:2)

默认情况下,Windows托管服务器在任何应用程序生成异常时显示一般错误。我们显示一般错误,因为详细的错误消息允许恶意用户获取敏感信息。

要解决此错误,您可以修改 web.config 文件,并指定显示自定义错误消息。自定义错误消息可帮助您找到导致问题的特定代码。

使用下面的示例代码在IIS 7上显示自定义错误消息:

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

答案 1 :(得分:0)

这里有多个选项,但作为一个起点......你可以使用PHP try / catch并回显你的错误吗?虽然不是最优雅的方式,但对于这个简单的问题,最有可能是最简单的。

try {
        if ($client) {
              $client->getBlob('setup', 'folders.txt', $filename); echo 'Blob Load ok!';
        }
        else {
              echo 'Blob Storage Error;
        }

         echo ', END';
}

catch(Exception $ex)   {
     echo $ex->getMessage();
}

答案 2 :(得分:0)

您可以尝试设置PHP以显示所有错误,IIS显示处理没有mod的错误管道并显示信息。

您应该使用 display_errors = On

部署php.ini文件

Google / Stack在Azure上搜索php.ini,如果您不熟悉如何执行此操作。