8

ASP.NET で Autofac を ContainerDisposalModule と共に使用して、解決する必要があるコンポーネントの依存関係を持つ発火と忘却の呼び出しをサポートするにはどうすればよいですか? 私が直面している問題は、タスクが実行される前に ASP.NET リクエストが完了し、リクエストの有効期間スコープを破棄するため、新しいスレッドで解決する必要があるコンポーネントはすべて、「インスタンスを解決できません」というメッセージで失敗することです。この LifetimeScope は既に破棄されているため、ネストされたライフタイムをこの LifetimeScope から作成することはできません。」ASP.NET で Autofac を使用して、ファイア アンド フォーゲット コールをサポートする最良の方法は何ですか? バックグラウンド スレッドで実行できる特定のタスクを実行する要求を遅らせたくありません。

4

2 に答える 2

4

リクエストの有効期間スコープから独立した新しい有効期間スコープを作成する必要があります。以下のブログ投稿は、MVC を使用してこれを行う方法の例を示していますが、同じ概念を WebForms に適用できます。

http://aboutcode.net/2010/11/01/start-background-tasks-from-mvc-actions-using-autofac.html

リクエストが完了した後に非同期作業が確実に実行されるようにする必要がある場合、これは適切なアプローチではありません。このような場合、リクエスト中にメッセージをキューに投稿して、別のプロセスがそれを取得して作業を実行できるようにすることをお勧めします。

于 2012-08-12T14:07:52.200 に答える