Domanda

Sto cercando di ottenere la cache AppFabric installato e funzionante sul mio ambiente di sviluppo locale. Ho Windows Server AppFabric Beta 2 Refresh installato, e il cluster cache e host configurato e avviato in esecuzione su Windows 7 64-bit. Io corro il mio sito web MVC2 in un sito web IIS locale sotto un pool di app v4.0 in modalità integrata.

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

Ho il mio web.config configurato con la seguente:

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

Ricevo un errore quando tento di inizializzare la DataCacheFactory:

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

Sto ottenendo la schermata di errore di colore giallo ASP.NET con il seguente:

Una connessione esistente veniva chiusa forzatamente dall'host remoto

Descrizione: Un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere l'analisi dello stack per ulteriori informazioni sull'errore e dove ha avuto origine nel codice.

Dettagli eccezione: System.Net.Sockets.SocketException: Una connessione esistente veniva chiusa forzatamente dall'host remoto

Errore Origine:

Line 21:         protected CacheService()
Line 22:         {
Line 23:             _cacheFactory = new DataCacheFactory();
Line 24:             _defaultCache = _cacheFactory.GetDefaultCache();
Line 25:         }
È stato utile?

Soluzione

Ho avuto un problema simile come bene, e il mio problema era che non avevo dato delle autorizzazioni necessarie per il client della cache. Al fine di verificare rapidamente questo è il problema vorrei concedere l'accesso di account a tutti di cache. Se questo risolve il problema allora esaminare limitando l'accesso al conto appropriata, piuttosto che tutti. Questo può fatto eseguendo il seguente comando tramite il "Caching amministratore di Windows PowerShell", che si trova nella cartella di menu di avvio di Windows Server AppFabric:

Grant-CacheAllowedClientAccount everyone

Altri suggerimenti

Ho avuto anche questo problema e ho trovato la risposta in questa discussione:

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

La risposta:

  

Si stanno vedendo questo errore a causa della mancata corrispondenza proprietà di sicurezza   tra client e server.

     

Nel codice del client è stato disattivato la sicurezza (Mode = Nessuno e   PotectionLevel = Nessuno), mentre la modalità di utilizzo del server cache = Trasporto e   PotectionLevel = EncryptAndSign (in bit Beta2Fresh).

     

Do una delle seguenti:

     

1) Nel codice client utilizza la protezione predefinita vale a dire   configuration.SecurityProperties = nuova DataCacheSecurity ();

     

2) Disattivare la sicurezza sul server per abbinare con il vostro client esistente   codice. Utilizzare PowerShell cmdlet Set-CacheClusterSecurity -SecurityMode   Nessuno -ProtectionLevel Nessuno

Si ottiene lo stesso problema se si utilizza un oggetto DataCacheFactoryConfiguration? per es.

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();
    ...
}

Hai aperto la porta sul firewall?

Forse controllare le voci nei log degli eventi -. Possono offrire indizi utili a capire ciò che è (o non è) accadendo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top