2

コードからメールを送信するためにSmtpClientとを使用しています。ビジネスロジックに基づいてメールの配信を遅らせることができるようにしたいと思います。メールが実際にいつ配信されるかについてのオブジェクトを生成できるようになります。MailMessageASP.NetDateTime

データベースを電子メールストレージとして使用して、電子メール配信をスケジュールするWindowsサービスを作成できることを認識しています。Sql Serverしかし、ホスティングサーバーに追加のサービスをデプロイしたくありません。

私はSQL Serverこれを達成するための仕事を作ることができることも知っていますが、純粋なものを使用してこれを達成できないまで、そしてそうしない限り、私はしたくありませんASP.NET

注意すべき点は、私のコードMSMQはサーバーで有効になっているかどうかをチェックするということです。そうである場合、MessageQueueクラスは電子メール配信に使用されます。したがって、キューを使用してこれを実現するためのヒントが役立ちます。

ちなみに、ソリューションは両方の場合で機能するはずです(つまり、SmtpClientMessageQueue

私はすでにこれこの質問とその受け入れられた答えをレビューしました。純粋なものを使用してこれを達成できない場合を除いて、サードパーティ製品を使用したくないASP.NET

PS .Net Frameworkバージョン:3.5、IIS7およびSQLServer2008が環境である必要があります。

4

2 に答える 2

1

常にオンのシナリオについてのすばらしいコメントを含む、asp.netでタイマーを実行し続けることに関するいくつかの情報:

Webアプリケーションの開始時にタイマーを開始します

以下を使用して、asp.netがシャットダウンしないようにすることができます。

ASP.NETアプリケーションがシャットダウンするのを防ぐことができますか?

タイマーを使用してデータベースをチェックし、保留中のすべてのメールを送信するだけです。

于 2012-04-16T08:21:44.130 に答える
0

クライアントからの調査と説明の結果、長時間実行されるバックグラウンドスレッドを作成する必要があることが決定されました。このスレッドは、事前定義された時間に電子メールの送信を処理し、非アクティブのためにアプリケーションプールがシャットダウンされたかどうかを気にする必要はありません。

于 2012-04-25T05:48:09.677 に答える