asp.netアプリケーションでセッション状態のタイムアウトを検出しようとしていますが、検出できません。System.Web.UI.Pageから次のように派生する基本クラスがあります。-
public class BasePageSessionExpire : Page
{
override protected void OnInit(EventArgs e)
{
base.OnInit(e);
if (Context.Session != null)
{
if (Session.IsNewSession)
{
string szCookieHeader = Request.Headers["Cookie"];
if ((null != szCookieHeader) && (szCookieHeader.IndexOf("ASP.NET_SessionId") > 0))
{
Session.Abandon();
Response.Redirect("~/SessionExpired.aspx",true);
}
}
}
}
}
セッション状態のチェックが必要なすべてのページは、「System.Web.UI.Page」ではなく、この基本クラスから派生しています。また、これらすべてのページにはEnableSessionState="True"があります。まったく関係がない場合は、global.asaxファイルに空白のSession_Start()メソッドがあります。
最初のリクエスト後の何らかの理由で、「Session.IsNewSession」プロパティは常にfalseです。これは最初の要求に対してのみ真であり、その後は常に偽です。タイムアウトを1分に設定しています。セッションがタイムアウトすることはありません。ここで何が欠けていますか?
また、SQL Server 2008で状態サーバーを実装しました。これは、インプロセスセッション状態の実装ではありません。
前もって感謝します。