Устранение неполадок с сообщениями «Не найдена конечная точка OpenID» с помощью Google и DotNetOpenAuth - PullRequest
0 голосов
/ 14 марта 2012

Я устранял эту проблему время от времени на прошлой неделе. У меня есть сайт, использующий код проверяющей стороны MVC из проекта DotNetOpenAuth. Я использую это с 2009 года.

В последнее время логины Google не работают. Я бы сказал, что в 80% случаев логин Google работает нормально. Так что прерывистый характер затрудняет диагностику.

Вот что я пробовал:

  1. Конечно, я убедился, что openid_identifier использует правильный URL (https://www.google.com/accounts/o8/id)
  2. Я обновился до последней версии (DotNetOpenAuth 3.4).
  3. Я пытался добавить настройки прокси по умолчанию согласно этому ответу .
  4. Я расширил настройки тайм-аута и даже уменьшил объем памяти на SQL, чтобы дать IIS больше оперативной памяти, как подсказывает этот ответ .
  5. Я добавил логирование для каждого запроса и ошибки, чтобы посмотреть, смогу ли я получить какую-либо ценную информацию. Это мне мало что говорит.
  6. Я просмотрел запросы / ответы с помощью Fiddler, чтобы узнать, смогу ли я что-нибудь обнаружить.
  7. Я несколько раз проверял свой логин в Google на StackOverflow, чтобы исключить вероятность того, что это действительно проблема с Google. И до сих пор это работает каждый раз.

Есть идеи?


UPDATE

Чтобы определить проблему, я немного изменил код на своем сайте. Вместо того, чтобы делать все это в одной строке ...

openid.CreateRequest(Request.Form["openid_identifier"]).RedirectingResponse.AsActionResult();

Я разбил его на разделы с входом между ...

MvcApplication.Logger.Info("Loading... " + Request.Form["openid_identifier"]);
var request = openid.CreateRequest(Request.Form["openid_identifier"]);
var redirect = request.RedirectingResponse;
MvcApplication.Logger.Info("Status... " + redirect.Status);
if (redirect.Status.ToString().ToLower() != "found")
{
    MvcApplication.Logger.Error("Details... " + redirect.Body);
}
return redirect.AsActionResult();

Так что я буду ждать следующей ошибки.

1 Ответ

0 голосов
/ 16 марта 2012

Я понял это.Это было вызвано Новой Реликвией.Я не уверен, как именно (или почему это было прерывистым), но это то, что было.New Relic автоматически обрабатывает ваши страницы определенным образом, поэтому, возможно, он мешает запросу поставщика OpenID.

Я оглянулся на сроки, в которые все это началось, и обнаружил, что это было примерно в то время, когда я устанавливал NewРеликт на сервере.Поэтому я удалил его, перезапустил IIS и позволил сайту работать без него в течение 48 часов.Я не получил ни одной ошибки за это время.Итак, пару часов назад я переустановил его и, конечно же, смог дублировать проблему.

В любом случае, я снова удалил New Relic, и все хорошо.Я сообщу им об этом.

...