有一个非常奇怪的问题。
场景:PHP5.2.9,IIS7,PHP作为FastCGI运行。我在test.concentratedtech.com上有一个网站。单击“登录”,输入OpenID凭据,单击“验证”,立即输入500错误。
点击返回,重新提交页面,工作正常。
IIS失败的请求跟踪显示以下两条消息。这些消息似乎通常表明一切都很好,这显然足以触发错误。 WTF。
任何想法?正如我所说的,如果你回击并重新提交,它就可以完美地运行 - 你可以不断重复这种体验:每个偶数编号的尝试都可以正常工作,奇数编号的尝试会失败500.
ONE:
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
答案 0 :(得分:0)
嗯......我有点不相信但是我每次都在随机进行更改和测试。
我将PHP的错误显示设置为关闭(正常生产设置,但此计算机仍在测试中,因此显示错误)。问题消失了。
我猜测200(“OK”)响应在某种程度上被Yadis OpenID库记录为“错误”。显示一个错误,PHP抛出500.错误显示关闭,PHP只是吸收它并继续前进。我猜。
更新:实际上,诀窍是错误必须要去。我禁用了错误显示并启用了错误记录(例如,到Windows应用程序事件日志,但也可能是一个文件),一切都很好。