2009-04-06 11 views
0

本当に奇妙な問題があります。PHPとOpenID = 500エラー

シナリオ:PHP5.2.9、IIS7、PHPがFastCGIとして実行されています。私はtest.concentratedtech.comにサイトを持っています。ログインをクリックし、OpenIDクレデンシャルを入力して、「Verify」を押し、すぐに500エラーになります。

[戻る]をクリックし、ページを再送信してください。正常に動作します。

IISの要求トレースが失敗すると、以下の2つのメッセージが表示されます。これらのメッセージは、すべてが正常であることを一般的に示しているようですが、明らかにエラーを引き起こすのに十分です。 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) 

TWO:

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

うーん...私は少し懐疑的だが、私はランダムに各1の後に変更とテストを行ってきました。

私はPHPのエラー表示をオフにしました(通常のプロダクション設定ですが、このマシンはテスト中で、エラーが表示されています)。問題は解消されました。

私は200( "OK")応答がYadis OpenIDライブラリによって何らかの形で "エラー"として記録されていたと推測しています。エラーが表示されると、PHPは500を投げました。エラー表示をオフにすると、PHPはそれを吸い上げてそのまま使い続けます。私は推測する。

更新:実際には、トリックはエラーがあるためには、どこかに行かなければなりません。エラー表示を無効にし、LOGGINGエラーを有効にしました(Windowsアプリイベントログなど、ファイルにもなる可能性があります)。