0

asp.net mvc Webアプリケーション内でバックグラウンドおよび長時間実行されるタスクを実行するための正しい設計上の決定について混乱しました。現在、これらの2つのリンクにあります:-

http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

&

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/

彼らは、リストされた理由 (主に IIS がこれらのタイプのタスクを実行するように設計されていないため) により、asp.net Web アプリケーション内でバックグラウンド タスクと実行時間の長いタスクを実行することは危険であると述べました。しかし同時に、asp.net プロジェクト内にインストールして、quartz.net、WebBackgrounder などのバックグラウンド ジョブを実行できるいくつかのツールをリストしました。

これらのツールがどのように機能するかわかりませんか?たとえば、(nuget を使用して) asp.net mvc Web アプリケーション内に WebBackgrounder をインストールし、IIS 内に asp.net mvc Web アプリケーションを展開すると、これらのツール内で定義されたジョブは IIS でも実行されますか? それとも、Web アプリケーションをホストしている II とは独立して実行されますか?

4

2 に答える 2

1

これらは IIS で実行されますが、別のスレッドで実行されます。何を達成する必要がありますか?間違った場所で問題を解決しようとしているのかもしれません。メッセージ キューを使用して、このタスクを Web アプリから分離することを検討してください。次に、キューからメッセージを消費し、必要なものを計算するサービスを構築します。

Azure サービス バスとワーカー ロールを使用したサンプルを次に示しますが、オンプレミスでも同じ考え方を使用できます。

http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/queue-centric-work-pattern

于 2015-09-08T19:47:50.470 に答える