هل قام أي شخص بتثبيت NServiceBus على خادم Microsoft Clustered؟
-
20-09-2019 - |
سؤال
تحديث: حسنًا ، بعد تجاوز حقيقة أنني لم أقم بإعداد MSDTC كمورد عنقودي (DOH!) ، تمكنت من تشغيل برنامجي وظهرت جميعًا جيدًا ، لكنني لم أتمكن من إرسال الرسائل إليه بنجاح. بعد الحفر ، وجدت أنه بينما تم إنشاء قوائم الانتظار الخاصة على عقدة واحدة من الكتلة ، لم تكن على العقدة الأخرى (كنت أقوم بتشغيل nservicebus.host.exe من موجه الأوامر) ، وبالتالي لم أكن مرئيًا للتطبيقات باستخدام الكتلة اسم. حاولت إنشاء تطبيق عام من nservicebus.host.exe وإضافته إلى مجموعة الكتلة ، لكن ذلك خفض مجموعة المجموعة. سؤالي ما زال: هل نجح أي شخص في تشغيل Nservicebus في بيئة متجمعة؟
أحاول تثبيت NServicebus على مضيف Win2K3 متجمع. أدوات التكوين المقدمة (Runner.exe) ترمي بعض الأخطاء التي لم ألتقطها ، وهي تعمل الآن بشكل صحيح. عند تشغيل nservicebus.host.exe ، أحصل على هذا الخطأ مرارًا وتكرارًا:
System.transactions.transactionabortedException: تم إحباط المعاملة. ---> system.transactions.transactionAmerAgerCommunicationException: فشل التواصل مع مدير المعاملات الأساسية. ---> System.Runtime.InterOpservices.comexception (0x8004d01b): مدير المعاملات غير متوفر. (Exception from HRESULT: 0x8004D01B) at System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(String nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean& nodeNameMatches, UInt32& whereaboutsSize, CoTaskMemHandle& whereaboutsBuffer, IResourceManagerShim& resourceManagerShim) at System.Transactions.Oletx.DtcTransactionManager.Initialize( ) --- نهاية تتبع مكدس الاستثناء الداخلي --- في system.transactions.oletx.oletxtransactionmanager.proxyexception (comexception comexception) في system.transactions.oletx.dtctransactaction.initialize () في system.tranctions.oletx.dtctrangenager.getsymer.gesysysysysymeStory.Getorxy ( ) في system.transactions.oletx.oletxtransactionmanager.createTransaction (خصائص المعاملات) في system.transactions.transactionStatePromoted.enterstate (internaltransaction tx) --- نهاية تتبع الاستثناء الداخلي --- ) في system.transactions.enl istablestates.promote (internaltransaction tx) في system.transactions.transaction.promote () في System.TransAction uint32 timeout ، int32 Action ، خصائص MQProps ، محاطين* متداخلة ، مستقبلات stensivecallback ، cursorhandle cursorhandle ، intptr معاملة) في system.messaging.messagequequeiue.receivecurrent (ttmoutpantepteaction ، messagequite. system.messaging.messagequeue.receive (timepan timeout ، messagequeTransActionType TransactionType) في nservicebus.unicast.transport.msmq MSMQ MSMQT Ransport.cs: الخط 551
هل نجح أي شخص في وضع NServicebus على خادم متجمع ، إذا كان الأمر كذلك ، كيف عملت؟
المحلول
حسنًا ، لذلك حصلت عليه أخيرًا وأعمل كطلب عام. كانت الجوتكاس التي وجدتها:
- تحتاج إلى إضافة ميزة .NET Framework أو دور خادم التطبيق إلى خوادم الأعضاء
- تحتاج إلى إضافة كل من MSDTC ومورد MSMQ إلى الكتلة (سوف تتطلب MSMQ أن يكون لديك MSDTC)
- بعد إضافة التطبيق العام لـ nservicebus.host.exe ، ستحتاج إلى الدخول وتعديل خصائص التطبيق العام للتحقق إلى الخادم الأعضاء الذي يعمل حاليًا.
نصائح أخرى
بالنسبة لأولئك الذين يبحثون عن المزيد من الدليل ، كتبت منشور مدونة يشرح هذه العملية خطوة بخطوة.
الدفع نشر nservicebus في مجموعة فشل Windows.
أنا أستخدم Windows Server 2008 ، لكنني أعتقد أن معظم القواعد نفسها يجب أن تنطبق.
حسنًا ، من المفيد بالفعل إعداد مورد MSDTC على المجموعة ، بمجرد أن يكون لديك مورد MSMQ ، ثم يعمل كل شيء تقريبًا ، انظر إلى السؤال.