ASP.NETサイトでバッチ処理の問題に取り組む方法はいくつかあります。
ASP.NETサイトのアプリケーションプールをリサイクルする方法がおかしいため、バッチ処理は通常、外部プロセスで実行されます。
Windowsサービス
1つの方法は、別のWindowsサービスです。これは、新しいExcelを取得し、そのデータを送り込み、タイマーが動き続けます。これは頻繁に使用されるのを見てきましたが、簡単に展開できるようにするには余分な作業が必要になるため、非常に面倒です。
WindowsサービスからASP.Netメンバーシップを更新します
CacheItem
2番目の方法は、CacheItemsとその有効期限タイマーを使用してバッチ処理を行うことです。長いタイマーでキャッシュオブジェクトを定義し、それが期限切れになってRemoved-callbackが呼び出されたら、データベースの作業を行います。これは、ASP.NETサイトとともに展開され、コードが1つの論理的な場所にあるため便利です。
https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/
ワークフローファウンデーション
3番目の方法は、ワークフローファウンデーションサービスを作成することです。そのサービスは、ASP.NETサイトから呼び出しを受け取ります。ASP.NETサイトは、WFサービスをインスタンス化し、Excelファイルでいくつかのdb作業を実行します。その後、1か月の遅延でwhileループに入ります。これは、ASP.NETアプリケーションプールの寿命に関係しないため、優れています。より詳細な制御が可能であり、このロジックを別のIISでホストされるWCFサービスに分離できます。
http://msdn.microsoft.com/en-us/library/dd489452.aspx
ただし、データとの統合は常に苦痛です。展開時に作業が最小限に抑えられ、障害が発生する可能性が最も低いソリューションが最善のソリューションであることを忘れないでください。