2012-03-13 19 views
0

私は過去1週間この問題を解決しています。私はDotNetOpenAuthプロジェクトからパーティーのMVCコードを使用してサイトを持っています。私は2009年からこれを使っています。GoogleとDotNetOpenAuthで断続的な「OpenIDエンドポイントが見つかりません」というメッセージが表示される

最近、Googleのログインに失敗しました。私は、Googleのログインがうまく動作する時間の約80%を言うだろう。断続的な性質は、これを診断するのを難しくします。

は、ここで私が試したものです:

もちろん
  1. 私はopenid_identifierが正しいURL(https://www.google.com/accounts/o8/id
  2. 私は、最新のリリース(DotNetOpenAuth 3.4)に更新しましたが使用されていることを確認しました。
  3. 私はthis answerのデフォルトプロキシ設定を追加しようとしました。
  4. this answerが示唆するように、IISにRAMを増やすために、タイムアウト設定を拡張し、SQLのメモリを減らしました。
  5. すべてのリクエストとエラーにログを追加して、貴重な情報が得られるかどうかを確認しました。これは私にはあまり教えてくれません。
  6. 私は何かを見つけることができるかどうかを見るために、フィドラーとのリクエスト/応答を見てきました。
  7. StackOverflowでGoogleのログインをテストしましたが、これは実際にGoogleで問題が発生している可能性があります。これまでのところ毎回働いています。


UPDATE

は、問題を特定するための努力では私は私のサイトビットでコードを変更しました。むしろ...すべて1行に

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(); 

に伐採とセクションにそれを破りました。

答えて

0

私はそれを理解しました。これはNew Relicが原因です。私は正確にどのように(または断続的であったのか)確信していませんが、それはそれでした。 New Relicは、ページを特定の方法で自動的に計測し、OpenIDプロバイダへのリクエストに干渉する可能性があります。

私はこれがすべて始まったタイムフレームを振り返り、サーバーにNew Relicをインストールした頃にあったことを知りました。だから、私はそれをアンインストールし、IISを再起動し、サイトを無人で48時間稼働させました。私はその時に一つの誤りを得ていませんでした。だから数時間前に私はそれを再インストールし、問題を再現するのに十分なことを確かめました。

とにかく、New Relicをもう一度削除しました。私はこれについて彼らに通知します。

関連する問題