Я постоянно получаю сообщение об ошибке при попытке отправить очередиCant получить MSMQ работать правильно
Указанное имя формата не поддерживает запрошенную операцию. Например, имя формата прямой очереди не может быть удалено.
имя Моя очередь хранится в конфигурационном файле и выглядит следующим образом
"FORMATNAME: Прямая = OS: MyComputerName \ PRIVATE $ \ MyQueue"
Есть 2 очередей, которые существуют, каждая очередь имеет разрешения, установленные для ВСЕХ.
SyncUser можно предположить = «все» или «My_Domain \ оператор»
//init the queues
qSync = new MessageQueue(queueName + "-sync")
{Formatter = new XmlMessageFormatter(new Type[] {typeof (String)})};
qClient = new MessageQueue(queueName + "-client")
{Formatter = new XmlMessageFormatter(new Type[] { typeof(String) })};
Создание очередей не вызывает каких-либо ошибок, но я получаю ошибки, когда я называю эту функцию Отправить
**Send(qSync, "This is a message");** //Example
public void Send(MessageQueue queue, string msg)
{
try
{
queue.Send(msg);
}
catch (MessageQueueException mqx)
{
var e = string.Format("Failed to Send - {0} | {1}", queue.QueueName, mqx.Message);
OnSynchronizerMonitor(new SyncEvent(e));
}
}
Любая помощь будет принята с благодарностью.
EDIT
кажется, что мои сообщения ARE делают его свое удаленный адрес назначения очереди, но приложение все еще бросает эту ошибку на каждом отправленном сообщении. Если во время отладки я смотрю на MessageQueues (qSync | qClient), эта ошибка появляется в нескольких внутренних полях, прежде чем она будет использоваться.
Вы пытаетесь отправить на удаленную машину? Все ли работает, если все работает на локальной машине? Также ваши транзакции транслируются? –
Да, это удаленная машина, Slave будет работать локально, и, похоже, она работает нормально, но все, что она делает, считывает из очереди, поэтому на данный момент она не была хорошо протестирована. И это не транзакционная очередь – Zholen
Вы вызываете Queue.Send(), но вы не показывали, как настроена очередь. –