Ошибка PHP и OpenID = 500 - PullRequest
       30

Ошибка PHP и OpenID = 500

0 голосов
/ 06 апреля 2009

У меня действительно странная проблема.

Сценарий: 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) 

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 

1 Ответ

0 голосов
/ 06 апреля 2009

Ну ... я немного недоверчив, но я случайно вносил изменения и тестировал после каждого.

Я выключил отображение ошибок PHP (обычная производственная настройка, но этот компьютер все еще находится в тесте, поэтому ошибки отображались). Проблема ушла.

Я предполагаю, что ответ 200 ("ОК") каким-то образом регистрировался как "ошибка" библиотекой Yadis OpenID. С ошибкой, которую нужно отобразить, PHP бросил 500. С отключенной индикацией ошибки, PHP просто поглощает ее и продолжает работать. Похоже.

ОБНОВЛЕНИЕ: На самом деле, уловка в том, что ошибка должна иметь КУДА-ТО. Я отключил отображение ошибок и включил ЛОГИРОВАНИЕ ошибок (например, в журнал событий приложений Windows, но также может быть в файл), и все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...