ذاكرة التخزين المؤقت AppFabric - تم إغلاق اتصال موجود بالقوة بواسطة المضيف البعيد

StackOverflow https://stackoverflow.com/questions/2830072

سؤال

أحاول الحصول على ذاكرة التخزين المؤقت AppFabric وتشغيلها في بيئة التطوير المحلية الخاصة بي. أملك Windows Server AppFabric Beta 2 تحديث تم تثبيته ، ومجموعة ذاكرة التخزين المؤقت ومضيفها وبدأ تشغيلها على نظام التشغيل Windows 7 64 بت. أقوم بتشغيل موقع الويب الخاص بي MVC2 في موقع ويب محلي IIS ضمن مجموعة تطبيقات V4.0 في وضع متكامل.

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
SN-3TQHQL1:22233          AppFabricCachingService UP             1 [1,1][1,1]

لدي web.config تم تكوينه بما يلي:

  <configSections>
        <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere"/>
   </configSections>

   <dataCacheClient>
       <hosts>
           <host name="SN-3TQHQL1" cachePort="22233" />
       </hosts>
   </dataCacheClient>

أحصل على خطأ عندما أحاول تهيئة datacachefactory:

    protected CacheService()
    {
        _cacheFactory = new DataCacheFactory(); <-- Error here
        _defaultCache = _cacheFactory.GetDefaultCache();
    }

أحصل على شاشة خطأ صفراء ASP.NET مع ما يلي:

تم إغلاق اتصال موجود بالقوة بواسطة المضيف البعيد

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

تفاصيل الاستثناء: system.net.sockets.socketexception: تم إغلاق اتصال موجود بالقوة بواسطة المضيف البعيد

خطأ المصدر:

Line 21:         protected CacheService()
Line 22:         {
Line 23:             _cacheFactory = new DataCacheFactory();
Line 24:             _defaultCache = _cacheFactory.GetDefaultCache();
Line 25:         }
هل كانت مفيدة؟

المحلول

لقد واجهت مشكلة مماثلة أيضًا ، وكانت مشكلتي هي أنني لم أعطي الأذونات المناسبة لعميل ذاكرة التخزين المؤقت. من أجل التحقق بسرعة من أن هذه هي المشكلة التي سأمنحها حساب كل شخص إلى ذاكرة التخزين المؤقت. إذا قام هذا بإصلاح المشكلة ، فابحث عن الحد من الوصول إلى الحساب المناسب بدلاً من الجميع. يمكن القيام بذلك في تنفيذ الأمر التالي عبر "مسؤول التخزين المؤقت Windows PowerShell" ، والذي يوجد في مجلد قائمة Windows Server AppFabric:

Grant-CacheAllowedClientAccount everyone

نصائح أخرى

واجهت هذه المشكلة أيضًا ووجدت الإجابة في هذا الموضوع:

http://social.msdn.microsoft.com/forums/vstudio/en-us/c27063e7-1579-4d62-9104-87076d1c8d98/client-icaching-errorcoderca0017substatuses0006

الاجابة:

أنت ترى هذا الخطأ بسبب عدم تطابق خاصية الأمان بين العميل والخادم.

في رمز العميل الخاص بك ، قمت بتعطيل الأمان (الوضع = لا شيء و potectionlevel = لا شيء) في حين يستخدم خادم ذاكرة التخزين المؤقت وضع = النقل و potectionLevel = EncryptandSign (الافتراضي في بتات Beta2fresh).

افعل أيًا مما يلي:

1) في رمز العميل ، استخدم الأمان الافتراضي IE Configuration.SecurityProperties = New DatacacheSecurity () ؛

2) تعطيل الأمان في الخادم للمطابقة مع رمز العميل الحالي. استخدم PowerShell Cmdlet Set -CachecluStersecurity -SecurityMode None -protectelevel

هل تحصل على نفس المشكلة إذا كنت تستخدم كائن DataCacheFactoryConfiguration؟ على سبيل المثال

protected CacheService()
{
    DataCacheFactoryConfiguration config;
    List<DataCacheServerEndpoint> endpoints;
    DataCacheFactory factory;
    DataCache cache;

    endpoints = new List<DataCacheServerEndpoint>();
    endpoints.Add(new DataCacheServerEndpoint("SN-3TQHQL1",22233));

    config = new DataCacheFactoryConfiguration();
    config.Servers = endpoints;

    factory = new DataCacheFactory(config);

    cache = factory.GetDefaultCache();
    ...
}

هل فتحت المنفذ على جدار الحماية الخاص بك؟

ربما تحقق من الإدخالات في سجلات الأحداث الخاصة بك - قد يقدمون أدلة حول ما يحدث (أو لا).

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