Я задавал этот вопрос на форуме MSDN, там мне очень помог Джон Брейквелл, но я не смог решить свою проблему, и теперь я бегаю кругами (снова).Так что, может быть, кто-то здесь может мне помочь.
У меня есть удаленная частная очередь, приложение производителя и приложение потребителя.Я использую Windows Server 2008 с MSMQ.
Я могу отправить сообщение с помощью приложения-производителя, но не могу прочитать его с помощью моего потребителя.Вот мой потребительский код
MessageQueue rmQ = new MessageQueue("FormatName:Direct=OS:<hostname>\\private$\\<queuename>");
System.Messaging.Message msg = rmQ.Receive();
Я получаю исключение во второй строке, исключение равно нулю без какой-либо информации, за исключением трассировки стека
System.Messaging.MessageQueueException(0x80004005) в System.Messaging.MessageQueue.MQCacheableInfo.get_ReadHandle () в System.Messaging.MessageQueue.StaleSafeReceiveMessage (тайм-аут UInt32, действие Int3 2, свойства MQPROPS, транзакция NativeOverlapped, перемотанный в обратном направлении, перезаписываемый курсор перевернутого объекта, перезаписываемый курсор в исходном состоянии, перезаписанный возвратный указатель при возврате с возвратом в исходное состояние при возврате в исходное состояние при возврате в исходное состояние при возврате в исходное состояние).Messaging.C: \ Users \ usr \ Documents \ Visua l Studio 2010 \ Projects \ loadQueueTest \ consumer \ Program.cs: строка 20
Я много чего прочитал, поэтому кое-что уже сделал:
- Я установил анонимный вход для полного доступа к очереди
- Я установил пользователя моего домена в качестве администратора на сервере
- Открыл портыдля MSMQ и RPC
- Отключен брандмауэр
Я также использовал rpcping и portqry для выполнения диагностики, я не эксперт, но, похоже, все в порядке.
Кто-нибудь знает, чего мне не хватает?
Спасибо, Оскар