Как получить количество сообщений MSMQ из частной очереди на локальной машине Win7? - PullRequest
3 голосов
/ 11 октября 2011

Я пытаюсь получить количество сообщений MSMQ из частной очереди на локальной машине Win7 Enterprise. Я могу получить счет с удаленной машины без проблем, и код работает на Win2008 Server R2. Я использую C # VS 2008.

Пример кода:

int result = MQMgmtGetInfo(cname, "queue=DIRECT=OS:" + qname, ref props);

, где cname - это имя компьютера с частной очередью, MyLocalComputer и
qname - это путь к частной очереди, MyLocalComputer\\private$\\QueueName

Когда я вызываю этот код с компьютера Win7, содержащего личную очередь, я получаю -1072824319 возвращаемое значение. Есть сообщения в очереди.

Если я вызываю этот код с компьютера WinXP для получения подсчета в очереди Win7, я получаю правильные подсчеты. Я также могу вызвать код с компьютера WinXP, чтобы получить счет из локальной частной очереди на том же компьютере WinXP и получить правильный счет.

Есть ли что-то другое в доступе к локальным частным очередям в Win7? Поскольку я могу получить доступ к очереди удаленно, я не думаю, что это проблема с разрешениями, но я могу ошибаться.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

-1072824319 = 0xC00E0001, что является общей ошибкой MSMQ.
Попробуйте использовать полную остановку вместо имени машины.
Это скажет MSMQ использовать "локальный хост".
Если это работает, то тамможет быть проблема с машиной, решающей свое собственное имя.

Cheers
John Breakwell

1 голос
/ 11 октября 2011

Похоже, вы используете API MSMQ 3.0.Windows 7 использует MSMQ 4.0.

. В окне ссылок .NET найдите System.Messaging (версия 4.0.0.0) и добавьте в свой проект.

Посмотритепо этой ссылке: http://www.codeproject.com/KB/cs/mgpmyqueue.aspx

[] * s

Renan

...