セッションを失うという問題が発生しているアプリケーションがありますが、アプリケーション プールのリサイクルが頻繁に行われていることが原因であるとほぼ確信しています。
アウト オブ プロセス ソリューションを試して、SQLServer sessionState を構成したかったのですが、ワーカー プロセスをリサイクルすると、セッションがまだ吹き飛ばされています。これが私のweb.configです
<sessionState cookieless="false" stateConnectionString="tcpip=localhost:42424" mode="SQLServer" sqlConnectionString="Data Source=(local;User ID=user;Password=password" timeout="180" />
適切な SQL スクリプトを実行してデータベースをセットアップしました。セッションが作成され、データベースに保存されていることがわかりますが、web.config を変更するか、ワーカー プロセスを手動でリサイクルすると、セッションが失われます。私は何を間違っていますか??
ちなみに、StateServer モードでもまったく同じ動作をしています。適切に構成しているようですが、ログインすると状態サービスのメモリフットプリントが大きくなることがわかります....シリアル化されていないオブジェクトをプッシュしようとするとエラーが発生しました....しかし、アプリプールをリサイクルするか、 web.config セッションが失われます....
私はまた、ここで見つけることができる Memcached セッションプロバイダー (これは私が本当に使いたいものです) をセットアップしようとしました: http://memcachedproviders.codeplex.com/releases/view/10468
それも同じことをしています!データベースでセッションが作成されていることを確認できます。シリアル化されていないオブジェクトを操作しようとすると、シリアル化に関するエラーが発生します....しかし、アプリケーション プールがリサイクルされると、セッションが失われます。
いくつかのログを有効にした後、イベント ビューアに次のように表示されます:
イベント コード: 1003 イベント メッセージ: アプリケーションのコンパイルが開始されています
誰でもない??私は本当にプロセスセッション状態から抜け出す必要があります....助けて!!