Обновление:
Хорошо, после того, как я исключил, что MSDTC не настроен в качестве ресурса кластера (doh!), Я смог запустить свою программу, и все выглядело хорошо, но я не смог успешно отправлять на нее сообщения. После копания я обнаружил, что хотя частные очереди были созданы на одном узле кластера, их не было на другом узле (я запускал NServiceBus.Host.exe из командной строки) и, следовательно, не были видны приложениям, использующим кластер название. Я попытался создать универсальное приложение из NServiceBus.Host.exe и добавить его в группу кластеров, но это просто привело к отказу группы кластеров. Мой вопрос до сих пор: кто-нибудь успешно запускал NServiceBus в кластерной среде?
Я пытаюсь установить NServiceBus на кластерный хост win2k3. Предоставленная утилита конфигурации (runner.exe) выдает некоторые ошибки, которые я не уловил, и теперь она работает правильно. При запуске NServiceBus.Host.exe я получаю эту ошибку несколько раз:
System.Transactions.TransactionAbortedException: транзакция прервана. ---> System.Transactions.TransactionManagerCommunicationException: сбой связи с базовым менеджером транзакций. ---> System.Runtime.InteropServices.COMException (0x8004D01B): диспетчер транзакций недоступен. (Исключение из HRESULT: 0x8004D01B)
на System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String NodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean & nodeNameMatches, UInt32 & whereaboutsSize, CoTaskMemHandle & whereaboutsBuffer, IResourceManagerShim & resourceManagerShim)
в System.Transactions.Oletx.DtcTransactionManager.Initialize ()
--- Конец внутренней трассировки стека исключений ---
в System.Transactions.Oletx.OletxTransactionManager.ProxyException (COMException comException)
в System.Transactions.Oletx.DtcTransactionManager.Initialize ()
в System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory ()
в System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (свойства TransactionOptions)
в System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction tx)
--- Конец внутренней трассировки стека исключений ---
в System.Transactions.TransactionStateAborted.CheckForFinishedTransaction (InternalTransaction tx)
в System.Transactions.EnlistableStates.Promote (InternalTransaction tx)
в System.Transactions.Transaction.Promote ()
в System.Transactions.TransactionInterop.ConvertToOletxTransaction (транзакция транзакции)
в System.Transactions.TransactionInterop.GetDtcTransaction (транзакция транзакции)
в System.Messaging.MessageQueue.StaleSafeReceiveMessage (таймаут UInt32, действие Int32, свойства MQPROPS, перекрытие NativeOverlapped *, ReceiveCallback receiveCallback, CursorHandle cursorHandle, транзакция IntPtr)
в System.Messaging.MessageQueue.ReceiveCurrent (тайм-аут TimeSpan, действие Int32, курсор CursorHandle, фильтр MessagePropertyFilter, внутренняя транзакция MessageQueueTransaction, MessageQueueTransactionType TransactionsType)
в System.Messaging.MessageQueue.Receive (Тайм-аут TimeSpan, MessageQueueTransactionType TransactionsType)
в NServiceBus.Unicast.Transport.Msmq.MsmqTransport.ReceiveMessageFromQueueAfterPeekWasSuccessful () в d: \ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ impl \ unicast \ unicast * 55 *.
Кто-нибудь успешно разместил NServiceBus на кластерном сервере, если да, то как у вас это получилось?