関連するすべてのスタックオーバーフローの質問と他の 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 分ゆっくりとメモを入力した後にフォームを保存すると、イライラします。フォームを送信するとログアウトされます。)
いくつかの詳細:
- これは IIS 7.5 を実行する単一の Web サーバーであり、フォームではありません (データベースは別のボックスにあります)。すべてのサーバーは VM です
- IIS セッション状態は「処理中」に設定されており、Cookie 設定ではタイムアウトは 60 分です。
- アプリケーション プールのアイドル タイムアウトは 60 分に設定され、リサイクル間隔は 29 時間に設定されています
- ワーカー プロセスが失敗したか、アプリ プールがリサイクルされたことを示すこれらの「チケットの期限切れ」メッセージの前に、イベント ログにエラーは表示されません。
最後に、web.config からのスニペット:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" protection="All" slidingExpiration="true" />
</authentication>
これらのセッション タイムアウトを追跡するための助けをいただければ幸いです。