Можно ли настроить сервер AppFabric Cache для хранения более крупных объектов?
Я получаю сообщение об ошибке с сервером кэша AppFabric, когда я предполагаю, что в кэш добавляется более крупный объектный граф.
ErrorCode: SubStatus: соединение было прервано, возможно, из-за проблем с сервером или сетью, или размер сериализованного объекта больше, чем MaxBufferSize на сервере. Результат запроса неизвестен.
Я точно знаю, что это не проблема сети. Я смог добавить кучу объектов в кеш до этого конкретного. И, глядя на это, объект немного больше, чем другие, которые были добавлены в кеш.
Как я могу настроить MaxBufferSize на AppFabric Cache?
2 ответа
Клиентская сторона это maxBufferSize для транспортного элемента в разделе конфигурации DataCacheClient.
<transportProperties ..whatever else you have.. maxBufferSize="8388608" />
Редактировать:
Пример раздела 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>
Вам также необходимо увеличить размер буфера на стороне сервера:
Если вы используете XML-конфигурацию, добавьте следующее:
<advancedProperties>
<transportProperties maxBufferSize="8388608" />
</advancedProperties>
Если вы используете конфигурацию SQL, вам нужно экспортировать ее в файл:
Export-CacheClusterConfig -File [yourfilepath]
Измените файл, как указано выше, а затем импортируйте его снова:
Stop-CacheCluster
Import-CacheClusterConfig -File [yourfilepath]
Start-CacheCluster
Тем не менее, не рекомендуется хранить большие файлы в AppFabric Cache.