データアクセスに(Fluent)NHibernateを使用しているこの管理サイトを持っています。 elsewhereと述べたように、SessionFactoryの初期化はConfigurationオブジェクトの作成のために遅いです。推奨される解決策は、Configurationオブジェクトをディスクにシリアル化し、エンティティアセンブリまたは流暢な初期化アセンブリが変更されるまで再利用します。リサイクル後に新しいAppPoolを開始するようにWASに指示できますか?
理論的には非常にエレガントで魅力的です。実際には、1エンティティモデルであっても、コンフィグレーションをデシリアライズすると約500msかかり、SessionFactoryをもう500ms作成します。 (これはシリアル化されていないスタートアップ時間に匹敵しますが、私はそこに多くのエンティティを置くと明らかになるでしょう)。
IISは自分のアプリケーションプールをリサイクルした後、新しいリクエストが入ってきます。したがって、IISのデフォルトリサイクル管理(29時間ごと)、および管理者が管理サイトに1日に1回ログインするというシナリオでは、この管理者がログインするたびに1秒の遅延が発生し、遅い出発地。
IIS/WASに、次の要求が到着するまで待つのではなく、リサイクルの一部として実際に置換アプリケーションプールを開始するように指示する方法があるのだろうか?これは、WASがいつでも同時に実行するアプリケーションプールをほとんど保たないというアイデアに反していますが、私の問題は解決します(アプリケーションプールが起動するとすぐにServiceHostFactory + ServiceHostが作成されると仮定しています) 。
Hmm .. 1日中に9回の再生回数。私の評判の欠如は私によく役立たないと思う。どのような代替ソリューションも大歓迎です。あなたはメモリのどこかにWindowsサービスやcomオブジェクトの設定をキャッシュすることを考えますか? – Mithon