2010-05-13 4 views
7

Я пытаюсь запустить AppFabric-кеш в свою локальную среду разработки. У меня есть Windows Server AppFabric Beta 2 Обновлено, а кластер кластера и хост настроен и запущен на 64-разрядной версии Windows 7. Я запускаю свой веб-сайт MVC2 на локальном веб-сайте IIS под пулом приложений v4.0 в интегрированном режиме.AppFabric Cache - существующее соединение было принудительно закрыто удаленным хостом

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, содержащий:

An exi удаленное соединение было принудительно закрыто удаленным хостом

Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом

Источник ошибки:

Line 21:   protected CacheService() 
Line 22:   { 
Line 23:    _cacheFactory = new DataCacheFactory(); 
Line 24:    _defaultCache = _cacheFactory.GetDefaultCache(); 
Line 25:   } 
+0

реальный вопрос, если ваша учетная запись не имеет доступа, почему Didnt сервер вам сказать, что модули tead «Существующее соединение было принудительно закрыто удаленным хостом» – felickz

ответ

14

У меня тоже была аналогичная проблема, и моя проблема заключалась в том, что я не предоставил надлежащие разрешения клиенту кэша. Чтобы быстро проверить, что это проблема, я бы предоставил каждому пользователю доступ к кешу. Если это устраняет проблему, посмотрите на ограничение доступа к соответствующей учетной записи, а не каждому. Это можно сделать, выполнив следующую команду с помощью «Caching администратора Windows PowerShell», который находится в сервере AppFabric ПУСК папку меню:

Grant-CacheAllowedClientAccount everyone 
+0

Спасибо! Я пытался понять это на какое-то время, ты спасатель. –

+1

Это ленивый способ сделать это. Более точное решение: Grant-CacheAllowedClientAccount «IIS AppPool \ AppPoolOfYourApplicationAccessingTheCache» –

1

Вы получаете ту же самую проблему, если вы используете 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(); 
    ... 
} 

Вы открыли порт на своем брандмауэре?

Возможно, проверьте записи в журналах событий - они могут предложить ключи к тому, что происходит (или нет).

+0

Да, я тоже пробовал это. Я прошел через всю конфигурацию, насколько мог, и все, кажется, правильно настроены. +1 –

+0

@Wallace Не уверен. Попробуйте переустановить, возможно? – PhilPursglove

+0

Переустановка тоже не работает. Я в настоящее время контактирую с Microsoft, чтобы попытаться решить эту проблему.Я отправлю ответ, когда услышу от них ответ. –

2

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

http://social.msdn.microsoft.com/Forums/vstudio/en-US/c27063e7-1579-4d62-9104-87076d1c8d98/client-caching-error-errorcodeerrca0017substatuses0006

ответ:

You are seeing this error because of the security property mismatch between client and server.

In your client code you disabled the security (Mode=None and PotectionLevel=None) whereas the cache server uses mode=Transport and PotectionLevel=EncryptAndSign (default in Beta2Fresh bits).

Do either of the following:

1) In the client code use the default security i.e. configuration.SecurityProperties =new DataCacheSecurity();

2) Disable the security at server to match with your existing client code. Use Powershell cmdlet Set-CacheClusterSecurity -SecurityMode None -ProtectionLevel None

+0

Это сработало для меня. Большое спасибо за то, что вы спасли меня! –

 Смежные вопросы

  • Нет связанных вопросов^_^