セッションタイムアウトを設定するAsp.netアプリケーションで問題が発生していますが、時間が経過してもセッションはまだ有効期限切れではありません。このアプリケーション用のSQL Server 2008のバックエンドデータベースがあり、そこにこのアプリケーションのセッションタイムアウト値を保存しています。私は現在、テスト目的で3分に設定しています。ASP.Netセッションのタイムアウトが動作しない
// Set the timeout
int timeout = GetSessionLength();
this.Session.Timeout = timeout;
そしてGetSessionLength()
は、セッションタイムアウトのためのデータベースを照会した後、整数値を返す関数です:Global.asaxのでは、SESSION_STARTに私は以下のものを持っています。
System.Web.UI.HtmlControls.HtmlMeta hmRefresh = new System.Web.UI.HtmlControls.HtmlMeta();
hmRefresh.HttpEquiv = "Refresh";
hmRefresh.Content = (this.Session.Timeout * 60).ToString();
Page.Header.Controls.Add(hmRefresh);
これは、タイムアウトがヒットされた後に自分自身をリフレッシュするためにページが発生します。
次に、サイトのマスターページでは、Page_Loadの上で、私は次のよう持っています。私のページはこれを使って正常にリフレッシュされています。しかし、私は、セッションが期限切れになるとヒットするいくつかの他のコードを持っていますが、セッションが期限切れにならないことを示すため、決してヒットしません。
また、私は自分のコンピュータ上で別のアプリケーションを開発しており、そのアプリケーションでセッションタイムアウトを検出するために同じコードを使用しています。だから私はなぜこれがないのか分からない。
サーバーによれば、もう少し時間が経過したことを確認するだけの場合はどうなりますか?ロングショット... –
好奇心の念から、あなたはASP.NETがweb.configファイルを使ってこのすべてを管理できることをご存じですか? –
@ ajax81、はい私はそれを非常に認識しています。セキュリティ上の理由から、SQL Serverからこれをリモートで変更できるようにしたいと考えています。選択したセッションの長さが短すぎると、この方法で簡単に変更できます。 –