У меня проблемы с чтением из MSMQ. Когда я пишу в очередь, она работает отлично, но когда я пытаюсь прочитать это сообщение из очереди, я получаю следующее исключение: «Очередь не существует или у вас недостаточно прав для выполнения операции». Очередь действительно существует, и у меня есть полные права на машину и очередь. Вот мой код:
public string path = @".\private$\";
public void WriteToQueue(string QueueName, object messageObject)
{
try
{
path = path + QueueName;
MessageQueue msmq = null;
if (!MessageQueue.Exists(path))
{
msmq = MessageQueue.Create(path);
}
else
{
msmq = new MessageQueue(path);
}
msmq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string)});
msmq.Send(messageObject);
msmq.Close();
}
catch (MessageQueueException ex)
{
System.ArgumentException argEx = neArgumentException(ex.ToString());
throw argEx;
}
path = @".\private$\";
}
public string ReadQueue(string QueueName)
{
try
{
path = path + QueueName;
MessageQueue msmq = new MessageQueue(path);
string msg;
msmq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string)});
msg = msmq.Receive().Body.ToString(); //exception is thrown here
path = @".\private$\";
return msg;
}
catch (Exception ex)
{
return null;
}
}
Может быть проблема может быть в том, что он читается как тип строки? Может быть, не в правильном формате?