Est-il possible d'ajuster le serveur AppFabric cache pour stocker des objets plus grands?
Question
J'obtiens une erreur avec le AppFabric Cache Server lorsque je suppose un plus grand graphe d'objet est ajouté au cache.
ErrorCode: SUBSTATUS: La connexion a été interrompue, peut-être en raison de serveur ou des problèmes de réseau ou sérialisé la taille de l'objet est supérieure à MaxBufferSize sur le serveur. Résultat de la demande est inconnue.
Je sais que ce ne est pas un problème de réseau. Je suis en mesure d'ajouter un tas d'objets à mettre en cache avant celui-ci en particulier. Et en regardant en elle, l'objet est un peu plus grand que les autres qui se est ajouté au cache.
Comment puis-je régler la MaxBufferSize sur AppFabric Cache?
La solution
Côté client, il est MaxBufferSize sur l'élément de transport dans votre section de configuration DataCacheClient.
<transportProperties ..whatever else you have.. maxBufferSize="8388608" />
Edit:
Exemple de la section de DataCacheClient 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>
Autres conseils
Vous devez augmenter la taille de la mémoire tampon du côté du serveur ainsi:
Si vous utilisez config XML ajouter ce qui suit:
<advancedProperties>
<transportProperties maxBufferSize="8388608" />
</advancedProperties>
Si vous utilisez la configuration SQL, vous devez exporter vers un fichier:
Export-CacheClusterConfig -File [yourfilepath]
Modifier le fichier comme indiqué ci-dessus et que l'importer à nouveau:
Stop-CacheCluster
Import-CacheClusterConfig -File [yourfilepath]
Start-CacheCluster
Néanmoins, il est recommandé de ne pas stocker de gros fichiers dans le cache AppFabric.