سؤال

يتبع تطبيقنا نهج الحفاظ على مركز بيانات لكل موضوع / httpcontext، باستخدام فئة DataContextFactory الموضحة بواسطة Rick Strahl على مقالات, ، بما في ذلك التعديل على المفتاح الذي ذكره ريتشارد (استخدام النوع .Assemblyqualiedname).

يبدو أن الحل الصوت (على الرغم من أن نهج مختلف قد يكون أفضل منهما)، إلا أنه أثناء استخدام هذه الأخطاء المتقطعة تظهر في التطبيق:

يتطلب ExecuteReadeader اتصال مفتوح ومتوفر. يتم إغلاق الدولة الحالية للاتصال.

يمكنني الوصول إلى DataContext في جميع أنحاء التعليمات البرمجية باستخدام العقار أدناه، وهذا جزء من فئة DataContext الخاصة بي:

/// <summary>
/// Returns the current datacontext for the thread or HttpContext, creating one if it does not exist.
/// </summary>
public static SharedDataContext Current
{
    get
    {
        return DataContextFactory.GetScopedDataContext<SharedDataContext>();
    }
}

أن تكون متقطعا أواجه صعوبة في تثبيت هذا. هل يعرف أحد ما قد أفعله خطأ، أو لديك فكرة جيدة كيف قد أكون قادرا على تصحيح هذه المشكلة؟


لاحظ أن هذا قد يكون مكررة دون إجابة سؤال هنا

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

المحلول

نحن نستخدم الآن DataContextostory مخصص يحافظ على DataContexts لكل معاملة. كان التغيير الرئيسي الآخر الوحيد هو استخدام [ThreadStatic] للخصائص، بدلا من الوصول يدويا عبر Thread.get / SetData

نظرا لأن هذا التغيير لا يبدو أن المشكلة تظهر، وعلى أنه لا توجد إجابات أخرى قد تم طرحها، أقترح [الخيوط] كحل

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