1

クライアントのシステムとセットアップに関するいくつかの制約に対して、SQL ServerがWeb要求を起動することは可能かどうか疑問に思っていますか?

SQL Serverの列が更新された後、メールを送信できるようにする必要があります。データベースメールでトリガーがありましたが、クライアントのデータベースサーバーはそれを許可しません。別の方法では、準備ができたら、その図でWebリクエストを実行します。Webサーバー上のWebサービスを介してそれを実行し、テーブルをポーリングするだけですが、それは多くの無駄なサイクルのようです。

何か案は?

4

2 に答える 2

2

SQLサーバーからマネージコードを実行できます。Windowsサービスを作成し、C#で必要な処理を実行して、ニーズを満たし、SQLサーバーがそれを呼び出します。

サンプルプログラムについては、このリンクをチェックしてください

于 2012-09-25T00:18:39.343 に答える
0

SQLCLRからWebサービスを呼び出さないでください。特に、トリガーからSQLCRLを介してWebサービスを呼び出さない(または電子メールを送信しないでください)。外部httpまたはsmtpアクセスにSQLCLRを使用することが悪い考えである理由はたくさんありますが、トリガーからそれを行うのは恐ろしいことです。Webサービスが10秒のレイテンシで応答した場合、アプリケーションが1日でどのように動作するかを考えてみてください...

外部アプリケーションからメール操作を行う必要があります。キューを介して、アプリケーションと電子メールアプリケーション間の相互作用を切り離す必要があります。SQL Serverテーブルをキューとして使用する方法については、 「テーブルをキューとして使用する」を参照してください。アプリケーションから直接メーリングリクエストをエンキューするか、データの挿入とリクエストのエンキューの両方を行うストアドプロシージャを使用するか、最後の手段として、テーブルのトリガーを使用してメーリングリクエストをエンキューします。メール送信者アプリケーション(別のサービス)は、このキューを監視し、実際のメール送信(またはhttp Webリクエスト)を実行してサービスを提供する必要があります。

于 2012-09-25T07:07:49.590 に答える