AppFabric Cache - существующее соединение было насильственно закрыто удаленным хостом

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

Вопрос

Я пытаюсь получить AppFabric Cache Up и запустить в мою местную среду развития. У меня есть 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», который находится в папке меню MENU MENU MENU MENU Windows Server AppFabric:

Grant-CacheAllowedClientAccount everyone

Другие советы

У меня тоже была эта проблема, и я нашел ответ в этой теме:

http://social.msdn.microsoft.com/forums/vstudio/en-us/c27063e7-1579-4d62-9104-87076d1c8104-87076d1c8d98/client-caching-erroror-errorcodeErca0017substatuseses.0006.

Ответ:

Вы видите эту ошибку из-за несоответствия свойства безопасности между клиентом и сервером.

В вашем клиентском коде вы отключили безопасность (MODE = NOTE и PTECTIOVELVEL = none), тогда как сервер кэша использует режим = транспортировка и потивное течение = EncryptandSign (по умолчанию в битах Beta2fresh).

Сделайте один из следующих действий:

1) В Клиентском коде используйте безопасность по умолчанию, т. Е. Конфигурация. SecurityProperties = Новая datacachesecuretify ();

2) Отключите безопасность на сервере, чтобы соответствовать вашим существующим клиентским коде. Использование Comdlet PowerShell Comdlet-CACHECLUSTERSESSIORYS -SECURITYMODE NORE-PROTECTYLEVER Нет

Вы получаете ту же проблему, если вы используете объект 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