2010-08-10 10 views
7

Ricevo un errore con AppFabric Cache Server quando presumo che un oggetto più grande venga aggiunto alla cache.È possibile regolare il server AppFabric Cache per memorizzare oggetti più grandi?

CodiceErrore: stato secondario: Connessione terminata, probabilmente a causa di problemi del server o di rete o formato oggetto serializzato è superiore MaxBufferSize sul server. Il risultato della richiesta è sconosciuto.

So per certo che non è un problema di rete. Sono stato in grado di aggiungere un mucchio di oggetti alla cache prima di questo particolare. E guardando dentro, l'oggetto è un po 'più grande degli altri che sono stati aggiunti alla cache.

Come posso regolare MaxBufferSize su AppFabric Cache?

risposta

8

Lato client è il maxBufferSize sull'elemento di trasporto nella sezione di configurazione DataCacheClient.

<transportProperties ..whatever else you have.. maxBufferSize="8388608" /> 

Edit:

esempio della sezione DataCacheClient da MSDN

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<!--configSections must be the FIRST element --> 
<configSections> 
<!-- required to read the <dataCacheClient> element --> 
<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 requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1"> 
    <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/> 
    <clientNotification pollInterval="300" maxQueueLength="10000"/> 
    <hosts> 
    <host name="CacheServer1" cachePort="22233"/> 
    <host name="CacheServer2" cachePort="22233"/> 
    </hosts> 
    <securityProperties mode="Transport" protectionLevel="EncryptAndSign" /> 
    <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
         maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
         receiveTimeout="600000"/> 
    </dataCacheClient> 
</configuration> 
+2

Non c'è qualcosa che deve essere fatto anche sul lato server? – irperez

+0

È possibile fornire una configurazione XML di esempio della sezione DataCache? Il server – irperez

+0

richiede le stesse impostazioni, sotto l'elemento advancedProperties della sua configurazione. – andrewbadera

9

È necessario aumentare la dimensione del buffer sul lato server così:

Se si utilizza config XML aggiungi il seguente:

<advancedProperties>  
    <transportProperties maxBufferSize="8388608" /> 
</advancedProperties> 

Se si utilizza la configurazione di SQL, è necessario esportare in un file:

Export-CacheClusterConfig -File [yourfilepath] 

Modificare il file come indicato qui sopra e poi importare di nuovo:

Stop-CacheCluster 
Import-CacheClusterConfig -File [yourfilepath] 
Start-CacheCluster 

Tuttavia non è consigliabile memorizzare file di grandi dimensioni nella Cache AppFabric.

Problemi correlati