سؤال

تحديث: حسنًا ، بعد تجاوز حقيقة أنني لم أقم بإعداد 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 على خادم متجمع ، إذا كان الأمر كذلك ، كيف عملت؟

هل كانت مفيدة؟

المحلول

حسنًا ، لذلك حصلت عليه أخيرًا وأعمل كطلب عام. كانت الجوتكاس التي وجدتها:

  1. تحتاج إلى إضافة ميزة .NET Framework أو دور خادم التطبيق إلى خوادم الأعضاء
  2. تحتاج إلى إضافة كل من MSDTC ومورد MSMQ إلى الكتلة (سوف تتطلب MSMQ أن يكون لديك MSDTC)
  3. بعد إضافة التطبيق العام لـ nservicebus.host.exe ، ستحتاج إلى الدخول وتعديل خصائص التطبيق العام للتحقق إلى الخادم الأعضاء الذي يعمل حاليًا.

نصائح أخرى

بالنسبة لأولئك الذين يبحثون عن المزيد من الدليل ، كتبت منشور مدونة يشرح هذه العملية خطوة بخطوة.

الدفع نشر nservicebus في مجموعة فشل Windows.

أنا أستخدم Windows Server 2008 ، لكنني أعتقد أن معظم القواعد نفسها يجب أن تنطبق.

حسنًا ، من المفيد بالفعل إعداد مورد MSDTC على المجموعة ، بمجرد أن يكون لديك مورد MSMQ ، ثم يعمل كل شيء تقريبًا ، انظر إلى السؤال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top