是否有人将NServiceBus安装到Microsoft群集服务器上?

是否有人将NServiceBus安装到Microsoft群集服务器上?,nservicebus,cluster-computing,windows-clustering,Nservicebus,Cluster Computing,Windows Clustering,更新: 好的,在克服了我没有将MSDTC设置为集群资源(doh!)这一事实之后,我能够运行我的程序,并且看起来一切正常,但是我无法成功地向它发送消息。挖掘之后,我发现虽然私有队列是在集群的一个节点上创建的,但它们不在另一个节点上(我在命令提示符下运行NServiceBus.Host.exe),因此对于使用集群名称的应用程序不可见。我尝试用NServiceBus.Host.exe创建一个通用应用程序并将其添加到集群组,但这只会导致集群组崩溃。我的问题仍然是:是否有人在集群环境中成功运行了NServ

更新: 好的,在克服了我没有将MSDTC设置为集群资源(doh!)这一事实之后,我能够运行我的程序,并且看起来一切正常,但是我无法成功地向它发送消息。挖掘之后,我发现虽然私有队列是在集群的一个节点上创建的,但它们不在另一个节点上(我在命令提示符下运行NServiceBus.Host.exe),因此对于使用集群名称的应用程序不可见。我尝试用NServiceBus.Host.exe创建一个通用应用程序并将其添加到集群组,但这只会导致集群组崩溃。我的问题仍然是:是否有人在集群环境中成功运行了NServiceBus


我正在尝试将NServiceBus安装到群集win2k3主机上。提供的配置实用程序(runner.exe)抛出了一些我没有捕捉到的错误,现在运行正常。运行NServiceBus.Host.exe时,我反复遇到此错误:

System.Transactions.TransactionBortedException:事务已中止。-->System.Transactions.TransactionManager通信异常:与基础事务管理器的通信失败。-->System.Runtime.InteropServices.COMException(0x8004D01B):事务管理器不可用。(HRESULT的异常:0x8004D01B) 在System.Transactions.Oletx.idtcproxysimfactory.ConnectToProxy(字符串节点名、Guid resourceManagerIdentifier、IntPtr ManagerDiIdentifier、布尔值和节点名匹配、UInt32和WhereboutsSize、CoTaskMemHandle和WhereboutsBuffer、IResourceManagerShim和resourceManagerShim) 在System.Transactions.Oletx.DtcTransactionManager.Initialize()处 ---内部异常堆栈跟踪的结束--- 在System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException COMException)中 在System.Transactions.Oletx.DtcTransactionManager.Initialize()处 在System.Transactions.Oletx.DtcTransactionManager.get_proxysimfactory()中 在System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(TransactionOptions属性)中 at System.Transactions.TransactionStatePromoted.EnterState(InternalTransaction tx) ---内部异常堆栈跟踪的结束--- 在System.Transactions.TransactionStateAborted.CheckForFinishedTransaction(内部事务发送) 在System.Transactions.EnstratableState.Promote(InternalTransaction tx)中 在System.Transactions.Transaction.Promote()中 at System.Transactions.TransactionInterop.ConvertToOletxTransaction(事务处理) 在System.Transactions.TransactionInterop.GetDTCtrTransaction(事务事务) 位于System.Messaging.MessageQueue.StaleSafeReceiveMessage(UInt32超时、Int32操作、MQPROPS属性、NativeOverlapped*overlapped、ReceiveCallback ReceiveCallback、CursorHandle CursorHandle、IntPtr事务) 在System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan超时、Int32操作、游标句柄游标、MessagePropertyFilter筛选器、MessageQueueTransaction内部事务、MessageQueueTransactionType transactionType) 在System.Messaging.MessageQueue.Receive(TimeSpan超时,MessageQueueTransactionType transactionType) 在d:\BuildAgent-02\work\672D81652ACA4E1\src\impl\Unicast\NServiceBus.Unicast.Msmq\MsmqTransport.ReceiveMessageFromQueueAfterPeekWasSuccessful()中的以下位置:第551行


是否有人成功地将NServiceBus安装到群集服务器上,如果是这样,您是如何使其工作的?

好的,在群集上实际设置MSDTC资源会有所帮助,一旦您同时拥有该资源和MSMQ资源,那么一切都能正常工作,请参阅问题的更新。

好的,实际上,在集群上设置MSDTC资源是很有帮助的,一旦您同时拥有了MSDTC资源和MSMQ资源,那么一切都会正常工作,请参见问题的更新。

好的,所以我最终将其设置为通用应用程序。我发现的问题是:

  • 您需要添加.net Framework 功能或应用程序服务器角色 到成员服务器
  • 您需要同时添加MSDTC和MSMQ资源 连接到群集(MSMQ将需要 你有MSDTC)
  • 添加的通用应用程序之后 NServiceBus.Host.exe,您将需要 进入并修改属性 要检查的通用应用程序的 “为计算机使用网络名” “名称”框,以便N服务总线点 指向要使用MSMQ的群集名称 不适用于正在运行的成员服务器 目前正在运行它

  • 好的,我终于把它建立起来,作为一个通用的应用程序工作。我发现的问题是:

  • 您需要添加.net Framework 功能或应用程序服务器角色 到成员服务器
  • 您需要同时添加MSDTC和MSMQ资源 连接到群集(MSMQ将需要 你有MSDTC)
  • 添加的通用应用程序之后 NServiceBus.Host.exe,您将需要 进入并修改属性 要检查的通用应用程序的 “为计算机使用网络名” “名称”框,以便N服务总线点 指向要使用MSMQ的群集名称 不适用于正在运行的成员服务器 目前正在运行它

  • 对于那些想要更多指南的人,我写了一篇博客文章,一步一步地详细介绍了这个过程

    退房


    我使用的是Windows Server 2008,但我相信大多数规则都应该适用。

    对于那些想了解更多指南的人,我写了一篇博客文章,一步一步地详细介绍了这个过程

    退房


    我使用的是Windows Server 2008,但我相信大多数规则都应该适用。

    我发现的另一个问题是,在为群集组设置通用应用程序后,需要进入并更改属性,以便选中“使用网络名称作为计算机名”,否则NServiceBus将尝试使用其中一个节点的名称在本地运行。我发现的另一个问题是,在为群集组设置通用应用程序之后,