I have written a sample application to write to a public and private queues that are on dev server. I don't have the message queue installed on my local machine.
I am getting error: message queuing has not been installed on this computer.
Error is on this line:
MessageQueue.Exists(queueName)
Here is the full test code, all commented and not commented private and public queues are resulting in the same error. What am i doing wrong here?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;
namespace MsmqTest
{
public partial class Form1 : Form
{
//@"DIRECT=OS:devbox01\PRIVATE$\PrivateQueueDev";
//@"DIRECT=TCP:192.168.6.102\PRIVATE$\PrivateQueueDev";
private const string QueueName = @"DIRECT=TCP:192.168.6.102\PRIVATE$\PrivateQueueDev";
//@"DIRECT=OS:devbox01\PublicQueueDev";
//@"DIRECT=TCP:192.168.6.102\PublicQueueDev";
private const string QueueNamePublic = @"DIRECT=TCP:192.168.6.102\PublicQueueDev";
public Form1()
{
InitializeComponent();
}
private void Write_Click(object sender, EventArgs e)
{
MessageQueue msgQ;
string msgText = String.Format("Message: {0}", DateTime.Now);
try
{
msgQ = GetQ(QueueNamePublic);
msgQ.Send(msgText);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private void Read_Click(object sender, EventArgs e)
{
}
private MessageQueue GetQ(string queueName)
{
MessageQueue msgQ;
if(!MessageQueue.Exists(queueName))
{
try
{
msgQ = MessageQueue.Create(queueName);
}
catch (Exception ex)
{
throw new Exception("Error creating queue", ex);
}
}
else
{
try
{
msgQ = new MessageQueue(queueName);
}
catch (Exception ex)
{
throw new Exception("Error getting queue", ex);
}
}
return msgQ;
}
}
}