0

セッションを使用して変数を渡しますが、サーバーにログインした後、セッションが2〜3分後に自動的に期限切れになります。何が問題である可能性がありますか?

webconfigファイル:

 <sessionState  timeout="1440" mode="InProc"></sessionState>
    <authentication mode="Forms">
        <forms name="School" loginUrl="Login.aspx" defaultUrl="default.aspx" 
               timeout="1440" slidingExpiration="true" protection="All" path="/" />
    </authentication>

タイムアウトを変更しましたが、機能しません。

4

3 に答える 3

1

アプリケーション プールが何らかの (構成可能な)理由で再起動し、そのセッションが失われた場合は、ログパフォーマンス カウンターを有効にして確認します。例には、メモリが不足している場合 (共有アプリ プールがある場合に可能性が高い)、1 分あたりのエラーが多すぎる場合 (検索エンジン スパイダーなどによってトリガーされる「隠れた」エラーの可能性があります)、または変更を加えている場合が含まれます。観察されたファイルまたは観察されたフォルダー (または など)。web.configbin\

セッションの「稼働時間」要件によっては、アプリケーション プールを再起動するとすべてのイン プロセスセッションが削除 (「期限切れ」) されるため、 ASP.NET/などのアウト プロセス セッション状態ストアを使用して問題を「修正」できます。Windows State Service/ServerまたはSQL Server

コードの問題ではなく、IIS の構成またはサーバーの問題であると思われる場合は、いつでもServerFaultで質問できます。

于 2012-06-23T06:37:52.417 に答える
0

セッションとフォームのタイムアウト設定は問題ないように見えますが、セッションがタイムアウトしたと思われる原因となることがまだたくさんあります。次のように問題を調査することをお勧めします。

ネットワーク設定: サーバーが負荷分散されている場合は、設定がセッションで機能することを確認してください。

アプリケーション プール: IIS でアプリケーション プールの更新/リセット ルールを確認します。20リクエストごとなどにプールを更新する設定がないことを確認してください。

タスク マネージャー: タスク マネージャーを見て、IIS ワーカー プロセス (w3wp.exe) の動作を確認します。ウイルス対策プログラムによって殺されていますか?その場合、セッションは確実にタイムアウトします。

イベント ログ: 最後に、Windows イベント ログを見てみましょう。タイムアウトに関連するイベント エントリがあるかどうかを確認します。

于 2012-06-23T06:39:24.937 に答える
0

これを Global.asax.cs に追加します

 protected void Session_Start(object sender, EventArgs e)
        {
            Session.Timeout = 240;
        } 
于 2012-06-23T07:27:49.887 に答える