Мой исполняемый файл (C # WPF Solution) не работает должным образом при вызове MSMQ Trigger.
Я отправляю сообщение с уведомлением в очередь (с именем sometestname): у меня есть класс с именем MyNotification, который включаетэтот статический метод:
public class MyNotification {
public static void SendNotification(String destination,String msg){
string s = @".\Private$\sometestname" + "-" + destination;
if(!MessageQueue.Exists(s))
MessageQueue.Create(s,false);
MessageQueue q = new MessageQueue(s);
Message msg = new Message();
msg.Body = msg;
q.Send(message);}
}
Решение WPF, использующее этот класс:
void ButtonBase_OnClick(object sender,RoutedEventArgs s){ MyNotification.SendNotification("user1","testing message");}
.exe, который будет запущен из триггера (при получении сообщения):
Public MainWindow(){
String queueName = @".\Private\sometestname-user1";
MessageQueue msgq = new MessageQueue(queueName,false);
try{
msgq.Purge();
}
catch(MessageQueueException e){
string filename = @"C:\Users\user1\Desktop\error.txt";
File.Create(filename);
}
}
Обратите внимание: сообщение поступает в очередь, и исполняемый файл показывается работающим в фоновом режиме, но он ловит ошибку.Когда исполняемый файл выполняется вручную, он выполняется нормально без каких-либо ошибок (т.е. файл не создается).Но когда он запускается из триггера MSMQ (включает правило, запускающее автономный исполняемый файл invoke при получении сообщения), он ловит исключение (т. Е. Файл создается).