Web ロールで、Azure で WCF サービスを開発しています。メモリ内にインデックスを作成し、それを使用して wcf リクエストを処理します。私の問題は、iis がリサイクルされた後、このインデックスがメモリからなくなっていることです。リサイクル イベントを検出し、インデックスをメモリに再度コピーする方法はありますか?
助けてくれてありがとう。
Web ロールで、Azure で WCF サービスを開発しています。メモリ内にインデックスを作成し、それを使用して wcf リクエストを処理します。私の問題は、iis がリサイクルされた後、このインデックスがメモリからなくなっていることです。リサイクル イベントを検出し、インデックスをメモリに再度コピーする方法はありますか?
助けてくれてありがとう。
はい、 Application_Endイベント (Global.asax.cs 内) で検出できます。
より良い解決策は、インデックスをメモリに置かないことです。Web ロールを使用しているため、Windows Azure キャッシュを使用できます (追加料金を支払う必要はありません)。Windows Azure キャッシュを使用すると、インデックスをメモリに格納できますが、アプリケーション プールのプロセスには格納できません。それでも超高速であり、アプリケーション プールのリサイクルに耐えることができます。
もう 1 つの利点は、インデックスを Windows Azure キャッシュに格納すると、同じ展開内のすべてのインスタンスとロールが同じキャッシュを使用できることです。これは、保存した同じインデックスをすべて使用することを意味します。