【问题标题】:PHP and OpenID = 500 errorPHP 和 OpenID = 500 错误
【发布时间】:2009-04-06 17:00:09
【问题描述】:

遇到了一个非常奇怪的问题。

场景:PHP5.2.9、IIS7、PHP 作为 FastCGI 运行。我在 test.concentratedtech.com 上有一个站点。点击登录,输入 OpenID 凭据,点击“验证”,立即出现 500 错误。

点击返回,重新提交页面,工作正常。

IIS 失败的请求跟踪显示以下两条消息。这些消息似乎通常表明一切正常,这显然足以触发错误。见鬼。

有什么想法吗?正如我所说,如果您回击并重新提交,它会完美运行 - 您可以不断重复这种体验:每次偶数尝试都可以正常工作,奇数尝试失败并返回 500。

一个:

ModuleName FastCgiModule 
Data1 FASTCGI_RESPONSE_ERROR 
Data2 Successfully fetched 'http://concentrateddon.myopenid.com/': GET response code 200

ErrorCode 5 
ErrorCode Access is denied. (0x5) 

两个:

ModuleName FastCgiModule 
Notification 128 
HttpStatus 500 
HttpReason Internal Server Error 
HttpSubStatus 0 
ErrorCode 0 
ConfigExceptionInfo  
Notification EXECUTE_REQUEST_HANDLER 
ErrorCode The operation completed successfully. (0x0 

【问题讨论】:

    标签: php iis iis-7 openid


    【解决方案1】:

    嗯...我有点怀疑,但我一直在随机进行更改并在每次更改后进行测试。

    我关闭了 PHP 的错误显示(正常的生产设置,但是这台机器仍在测试中,所以会显示错误)。问题消失了。

    我推测 Yadis OpenID 库以某种方式将 200(“OK”)响应记录为“错误”。显示错误时,PHP 抛出了 500。关闭错误显示后,PHP 只是将其吸收并继续运行。我猜。

    更新:实际上,诀窍是错误必须在某个地方发生。我禁用了错误显示并启用了错误日志记录(例如,到 Windows 应用事件日志,但也可以到文件),一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多