天天看點

使用Msmq觸發器

MSMQ之觸發器

使用 msmq 中的trigger 可以主動啟動Exe程式并設定要傳什麼參數,比自己寫代碼輪詢一個queue 中的消息,則友善很多。

安裝 MSMQ 、 MSMQ Triggers

使用Msmq觸發器

設定MSMQ 與 MSMQ Triggers

1.打開【計算機管理】->【服務與應用程式】->【消息隊列】

2.建立【專用隊列】

使用Msmq觸發器

3.建立規則

使用Msmq觸發器

,名為“TriggerTestRule”

使用Msmq觸發器

,規則條件可以為空。

使用Msmq觸發器

,選擇要觸發的應用程式。

使用Msmq觸發器

,設定要傳的參數。

4.建立觸發器,并附件剛才建立的規則

使用Msmq觸發器
使用Msmq觸發器

程式代碼

1.發送消息

using System;
using System.Messaging;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var myMessageQ = new MessageQueue(@".\Private$\MqTriggerTest");
                var mt = new MessageQueueTransaction();
                mt.Begin();
                var message = new Message
                                  {
                                      Formatter = new ActiveXMessageFormatter(),
                                      Body = @"Msmq觸發器測試消息123!",
                                      Label = "test123"
                                  };
                myMessageQ.Send(message, mt);
                mt.Commit();
                myMessageQ.Close();
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }
    }
}
           

2.觸發程式

using System.IO;

namespace MsmqTriggerExe
{

    internal class Program
    {
        private static void Main(string[] args)
        {

            using (var writer = new StreamWriter(File.Open(@"d:\msmq.txt", FileMode.Append)))
            {
                for (int i = 0; i < args.Length; i++)
                {
                    writer.WriteLine("{0} - {1}", i, args[i]);
                }
                writer.WriteLine();

                writer.Flush();
            }

        }
    }

}
           

3.接收的消息

使用Msmq觸發器

繼續閱讀