Windows 2012 の ASP.NET 4.5 セッションで奇妙な問題が発生しました
説明: セッションは正常に動作します。私はサイト、ログイン、アクセス、たとえばプロファイル、およびセッションを使用する他のaspxページを通過します。次に、任意の aspx ページで 1 秒ごとに、すべての aspx ページでセッションが失われます。数秒後、セッションが再開されます。したがって、問題が発生する前にログインすると、セッション値が失われ、数秒後に元に戻ります。これは、すべてのブラウザ (IE、FF、Chrome) で発生します。私はまだInProc、State Server、Appfabricを使用しようとしましたが、すべて同じなので、「トップレベル」の.netセッション処理またはIISで何かを行う必要があります...よくわかりませんが、ほとんど、主観的には、セッションが「失われる」直前にリクエストが非常に遅いと思います。クレイジーなことに、彼らは後に「戻ってくる」ので、実際には迷子にはなりません。
何か案が ?
アップデート
デバッグコードを追加しました。最も再現しやすいログインを見てください。ここにコードビハインド:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write("StepA/")
End Sub
Protected Sub btnSignin(ByVal sender As Object, ByVal e As EventArgs)
Response.Write("Step0/")
If System.Web.Security.Membership.ValidateUser(loginEmail.Value, loginPassword.Value) = True Then
Response.Write("Step1/")
FormsAuthentication.SetAuthCookie(loginEmail.Value, False)
Response.Write("Step2/")
Dim ui As New UserInfo
Response.Write("Step3/")
ui.InitUserInfo(loginEmail.Value)
Response.Write("Step4/")
If Request.UrlReferrer.OriginalString.Contains("Login.aspx") = True Then
Response.Write("Step5/")
Response.Redirect("/admin/Default.aspx")
Else
Response.Write("Step6/")
Response.Redirect(Request.UrlReferrer.OriginalString)
End If
Else
Response.Write("Step7/")
loginfailed.Visible = True
End If
End Sub
そう...すべての通常の初期ロードを実行し、「stepA」を出力します。次にログイン後 Step0~5 or 6
次に、何らかの理由でセッションが「失われ」、上記のコードはステップ 0 から 6 を出力しません。クリック イベントが発生しないように見えます。さて...しかし、AppFabricキャッシュを再起動すると、不思議です...前に書いたように機能します...状態サーバーでも同じことが起こり、StateServerを再起動すると問題が解決し、Inproc、IISまたはアプリを再起動すると問題が解決します。 ...
ただ明確にします。このセッションが失われたか、ログインだけでなく、すべての aspx ページで問題が発生しました。少なくともセッションが使用されるすべての場所