WindowsサービスとMSMQはそれらと通信します(必要があれば)。
- 編集
少し拡大してください。
あなたは何をしたいかに応じていくつかのサービスを作成し、それらはすべてあなたが望むことをするためにさまざまなスリープレベルの無限のスレッドを実行させます。彼らはデータベースを適切に更新し、クライアント側で何もする必要はありません。
管理者の観点から対話したい場合は、管理者コマンドを聞くMSMQがあるかもしれません。あなたの実装に応じて、何らかの理由でそれらを再起動する必要があるかもしれません。あるいは、実行したいことが何であれ実行を強制するだけかもしれません。
したがって、MSMQプライベートキューを使用して(System.Messaging名前空間)使用します。 MSMQに関する重要な点の1つは、メッセージが< 4megである必要があることです。したがって、大きなオブジェクトグラフを送信する場合は、最初にファイルにシリアル化し、ファイル名を送信してください。
MSMQは非常に美しいです。あなたは、いくつかの面白い理由で、相関IDは、の形式でなければなりません、あなたがする必要がある場合は、「相関ID」に基づいて送ることができますが、:
{guid}\1
他に何かがうまくいかない(少なくともバージョン2.0にコードが変更されている可能性があります)。
- 要求されたとして、
例を編集します。
using System.Messaging;
...
MessageQueue queue = new MessageQueue(".\\Private$\\yourqueue");
queue.Formatter = new BinaryMessageFormatter();
Message m = new Message();
m.Body = "your serialisable object or just plain string";
queue.Send(m);
// on the other side
MessageQueue queue = new MessageQueue(".\\Private$\\yourqueue");
queue.Formatter = new BinaryMessageFormatter();
Message m = queue.Receive();
string s = m.Body as string;
// s contains that string now
からこの偉大な記事を読んで、あなたが最初にASP.NET MVCに、その後MSMQでサービスアプリケーションを「接続」とする方法の例を持っていますか?これは私にはかなり新しいものです。ありがとうございました! – Alex
適切なキューに書き込むだけです。あなたのサービスは.Receiveを呼び出すでしょう。あなたのページはキューからメッセージを送りたいので、単に ".Send"を呼び出します。私は小さな例で更新します。 –
が更新されました。注キューが存在しない場合は、そのキューを作成するコードは表示されていません。しかし、それはSystem.Messaging APIのように簡単に見つけることができます。特に:MessageQueue.Create(...)。また、適切な権限を取得する必要があります。 (.SetPermissions)。 –