سؤال

لدي تطبيق يقوم بتشغيل المعاملات الممتدة عبر قواعد بيانات متعددة على نفس الخادم.وبطبيعة الحال، يتضمن هذا منسق المعاملات الموزعة من Microsoft وكل شيء يعمل كما هو مفترض.

ومع ذلك، عندما أقوم بالاتصال عن بعد بالشبكة التي تتم استضافة الخادم فيها عبر VPN وتشغيل التطبيق على جهازي المحلي، أتلقى الخطأ التالي:

System.Transactions.TransactionManagerCommunicationException:"فشل الاتصال بمدير المعاملات الأساسي."

حدث بسبب:

System.Runtime.InteropServices.COMException: تم إرجاع الخطأ HRESULT E_FAIL من استدعاء مكون COM.

فيما يلي تتبع المكدس للاستثناء الأصلي:

في System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32propgationTokenSize، Byte[]propgationToken، IntPtr ManagedIdentifier، Guid&TransactionIdentifier، OletxTransactionIsolationLevel&isolationLevel، ITransactionShim&TransactionShim)
في System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[]propagationToken)

تنشأ المشكلة فقط عندما أقوم بالاتصال بالخادم عبر نفق VPN.
لاحظ أيضًا أنني قمت بتعطيل جدار حماية Windows مؤقتًا على جهازي المحلي، فقط للتأكد من أنه لا يحظر MSDTC.

هل يعرف أحد أي مشكلات عند تشغيل MSDTC عبر VPN؟

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

المحلول

هل تدير اتصال VPN؟قد تكون هناك منافذ مقيدة على VPN.وبالمثل، هل تدير خوادمك؟قد تسمح خوادمك فقط بالاتصالات من عناوين IP من الداخل وليس من الجزء المستخدم لخدمة VPN.إذا كنت المسؤول، فربما يكون من المفيد تحديد برنامج VPN الذي تستخدمه.

نصائح أخرى

أقترح عليك تشغيل DTCPing (متوفر من موقع Microsoft في مكان ما). يتم تشغيل هذا في نفس الوقت على كلا الجهازين ويكتشف جميع أنواع مشكلات DTC.

كن حذرًا، فقد واجهت صعوبات كبيرة مع هذه الأداة حتى قرأت التعليمات بالفعل وبدأت في كلا جانبي الاختبار قبل النقر فوق زر بدء الاختبار.

أواجه نفس المشكلة باستخدام عميل Windows 7 x64 وخادم Server 2003R2.لقد تمكنت من تشغيله (على نفس VPN، نفس الخادم) باستخدام XP وVista x86 وWindows 7 x86.لدي مكالمة دعم مفتوحة مع Microsoft وهم يبحثون فيها.أشعر بالفضول - ما هو نظام التشغيل الذي تستخدمونه يا رفاق على أجهزة عملائكم؟

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