3

関連するすべてのスタックオーバーフローの質問と他の Web リソースを調査したと思いますが、一度に約 20 人のユーザーが使用する 24 時間年中無休の Web アプリで、この問題が毎日 12 回以上発生しています。

Event code: 4005 
Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired. 

ユーザーは、60 分のタイムアウトよりも早くログアウトしていると言っています。(アプリのフォームの中には、入力に時間がかかるものがあります。ユーザーは人々にインタビューしたり、メモを書いたりしていますが、これには時間がかかることがあります。そのため、20 ~ 30 分ゆっくりとメモを入力した後にフォームを保存すると、イライラします。フォームを送信するとログアウトされます。)

いくつかの詳細:

  1. これは IIS 7.5 を実行する単一の Web サーバーであり、フォームではありません (データベースは別のボックスにあります)。すべてのサーバーは VM です
  2. IIS セッション状態は「処理中」に設定されており、Cookie 設定ではタイムアウトは 60 分です。
  3. アプリケーション プールのアイドル タイムアウトは 60 分に設定され、リサイクル間隔は 29 時間に設定されています
  4. ワーカー プロセスが失敗したか、アプリ プールがリサイクルされたことを示すこれらの「チケットの期限切れ」メッセージの前に、イベント ログにエラーは表示されません。

最後に、web.config からのスニペット:

<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" protection="All"     slidingExpiration="true" />
</authentication>

これらのセッション タイムアウトを追跡するための助けをいただければ幸いです。

4

1 に答える 1

1

jquery アイドル タイマーを使用して、ユーザーの非アクティブを追跡し、セッションがタイムアウトする前に警告を表示しました。また、ユーザーが Ajax 呼び出しを行ってセッションを更新できるようにします。参考までに、これらのリンクを参照できます

リンク 1

リンク2

于 2012-11-05T02:24:03.587 に答える