Question

Je suis en train de se cache AppFabric et en cours d'exécution sur mon environnement de développement local. Je Windows Server AppFabric Beta 2 Refresh installé, et le cluster de cache et l'hôte configuré et démarré en cours d'exécution sur Windows 7 64 bits. Je cours mon site MVC2 dans un site Web IIS local sous un pool d'application v4.0 en mode intégré.

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

J'ai mon web.config configuré avec les éléments suivants:

  <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>

Je reçois une erreur lorsque je tente d'initialiser le DataCacheFactory:

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

Je reçois l'écran d'erreur jaune ASP.NET avec les éléments suivants:

Une connexion existante a été fermée force par l'hôte distant

Description: Une exception non gérée est survenue pendant l'exécution de la demande Web en cours. S'il vous plaît examiner la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Exception Détails: System.Net.Sockets.SocketException: Une connexion existante a été fermée de force par l'hôte distant

Erreur source:

Line 21:         protected CacheService()
Line 22:         {
Line 23:             _cacheFactory = new DataCacheFactory();
Line 24:             _defaultCache = _cacheFactory.GetDefaultCache();
Line 25:         }
Était-ce utile?

La solution

J'ai eu un problème similaire aussi bien, et mon problème était que je ne l'avais pas donné les autorisations nécessaires au client de cache. Afin de vérifier rapidement c'est la question que je voudrais accorder l'accès au compte de tout le monde dans le cache. Si ce résout le problème semble alors en limiter l'accès au compte approprié plutôt que tout le monde. Cela peut faire exécuter la commande suivante via le « Administrateur Windows PowerShell caching », qui se trouve dans le dossier du menu Démarrer de Windows Server AppFabric:

Grant-CacheAllowedClientAccount everyone
scroll top