2009-04-06 8 views
0

Avoir un problème vraiment étrange. Scénario: PHP5.2.9, IIS7, PHP fonctionnant sous FastCGI.PHP et OpenID = erreur 500

J'ai un site sur test.concentratedtech.com. Cliquez sur connexion, entrez les informations d'identification OpenID, cliquez sur "Vérifier" et l'erreur 500 immédiatement.

Cliquez sur Précédent, resoumettre la page, fonctionne correctement. Une trace de demande échouée IIS révèle deux messages, ci-dessous. Ces messages semblent indiquer généralement que tout va bien, ce qui est apparemment suffisant pour déclencher une erreur. WTF.

Des idées que ce soit? Comme je le dis, si vous frappez en arrière et soumettre à nouveau, il fonctionne parfaitement - et vous pouvez toujours répéter cette expérience: Toute tentative de numéro pair fonctionne très bien, les tentatives impaires échouent avec un 500.

UN:

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

ErrorCode 5 
ErrorCode Access is denied. (0x5) 

DEUX:

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 

Répondre

0

Eh bien ... Je suis un peu incrédule mais je fais des changements au hasard et les tests après chacun.

J'ai désactivé l'affichage des erreurs de PHP (réglage de production normal, mais cette machine est toujours en test, donc les erreurs étaient affichées). Le problème est parti.

Je suppose que la réponse 200 ("OK") était en quelque sorte consignée comme une "erreur" par la bibliothèque Yadis OpenID. Avec une erreur à afficher, PHP lança un 500. Avec l'affichage d'erreur désactivé, PHP le suce et continue. J'imagine. MISE À JOUR: En fait, l'astuce est l'erreur doit avoir QUELQU'UN aller. J'ai désactivé l'affichage des erreurs et activé l'erreur LOGGING (par exemple, dans le journal des événements de l'application Windows, mais aussi dans un fichier), et tout va bien.

Questions connexes