2012-02-16 18 views
0

プロジェクトにニュースレター機能を追加して、購読しているすべてのユーザーに構築済みのメールを送信したいと考えています。大量になることはあまり期待していませんが、メールの量が多くなる可能性があるプロジェクトでは、これを再利用することを考えています。しかし、私はこれに対してどのような戦略をとることができるのか混乱しています。 this questionへの答え引用すると:ニュースレターを作成して送信する

を私はあなたが別のバックグラウンド スレッドでそれを開始しない場合でも、送信するためにasp.netのWebページをお勧めしません。私はあなたがサーバーのリスクを実行して の途中であなたのプロセスをリサイクルすると思うが、それはそれを混乱させるだろう。電子メールを送信するには、何らかの別のサービスや アプリケーションを作成する必要があります。

これは、WCFサービスが行く方法を意味しますが、ODataサービスかRIAサービスかは関係ありませんか? MSDNのドキュメントは、それぞれのタイプが何であるかについて少し混乱しています。 RIAを使用するための例としてSilverlightを挙げていますが、依然として独立して使用することができます。

また、このようにサービスを使用しても、プロセスのリサイクルに関する上記の引用は、コントローラが待機している間にプロセスをリサイクルするので、MVCコントローラから呼び出すことができないことを意味しますとにかくサービスのために?理想的には、私はMVCでメールを作成し、それをサービスに渡し、メールを送信し、MVC自体の中で結果を処理したいと思います。

最後の問題は、サービスでフォーム認証を実装できるかどうかということです。他の人がニュースレターをランダムに送信できないように、サービスへのアクセスを制御できる必要があります。

これらの目標は、WCFとMVCを組み合わせて達成可能ですか?

答えて

2

似たようなことをして、心に留めておくと、私はすべてが送られていることを保証したいと思います。私はちょうど私のコントローラのメッセージの内容を設定し、メッセージと受信者のリスト(またはこの場合は受信者を定義するフィルタ)をデータベースに書き込みます。

次に、ASP(私の場合はWindowsサービス)の外部で実行されている独立したプロセスがあります。定期的にデータベースが送信要求をチェックし、送信し、送信済みのフラグを付けます。

明らかに、MVCコントローラはすべての認証問題を処理します。送信要求がデータベースに記録されると、完全に承認されたものとみなされます。

WCFを使用してASPとWindowsサービスの間で通信することで同様のことができますが、それはあまりにも複雑だと思います。要求が最終的に処理されることを保証することは難しくなります。とにかくこれを100%確実にするためには、データベースレコードが必要です。レコードもあなたのメッセージである可能性があります。また、通常、電子メール送信のリアルタイムトリガは必要ありません。

+0

答えてくれてありがとうございました。そうすれば、作業がはるかに簡単になります。 –

関連する問題