2

在访问 blob 存储时,我在 Azure fastCGI 上收到一般服务器错误。

错误是: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>

谢谢。

4

3 回答 3

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>
于 2011-03-30T08:18:51.877 回答
0

您可以尝试将 PHP 设置为显示所有错误,而 IIS 显示在没有 mod 的情况下处理错误管道并向您显示信息。

您应该部署一个带有display_errors=On的 php.ini 文件

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

于 2011-02-01T12:13:51.803 回答
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();
}
于 2011-01-28T17:33:32.153 回答