2013-06-03 6 views
0

Мы не хотим использовать кластер кеширования для этого, так как на данный момент мы сталкиваемся с некоторыми проблемами стабильности кластеров кэша, поэтому они находятся на постоянном обслуживании (полностью наша ошибка). Можем ли мы использовать выделенный кластер для хранения сеансов? (забудьте кластер, по крайней мере один хост?)Могу ли я использовать выделенный (отдельный) кластер для хранения файлов приложений?

Это будет похоже на использование двух кластеров в одном приложении, один для кеширования и один для хранения сеансов, и они будут находиться в одном файле конфигурации.

Является ли мой подход правильным? Любая помощь будет оценена по достоинству. Благодаря!

Благодаря @CyberMax, я смог установить этот env. Но, Im получаю сообщение об ошибке, когда я запускаю страницу:

The configuration section 'dataCacheClients' cannot be read because it is missing a section declaration

500 internal server error

Вот мой конфиг:

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

    <system.web> 
<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
    <add assembly="Microsoft.ApplicationServer.Caching.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    <add assembly="Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </assemblies> 
</compilation> 
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider"> 
    <providers> 
    <!--specify the named cache for session data--> 
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="sample-cache" dataCacheClientName="VirtualCache"/> 
    </providers> 
</sessionState> 

</system.web> 


<dataCacheClients> 
    <dataCacheClient name="serverCache"> 
    <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/> 
    <clientNotification pollInterval="5"/> 
    <!--cache host(s)--> 
    <hosts> 
     <host name="[email protected]" cachePort="22233"/> 
     <host name="[email protected]" cachePort="22233"/> 
    </hosts> 
    <securityProperties mode="None" protectionLevel="None" /> 
    <transportProperties maxBufferPoolSize="2147483647" maxBufferSize="2147483647" channelInitializationTimeout="60000" receiveTimeout="900000"/> 
    </dataCacheClient> 

    <dataCacheClient name="VirtualCache"> 
    <localCache isEnabled="false" sync="NotificationBased" objectCount="100000"/> 
    <clientNotification pollInterval="5"/> 
    <hosts> 
     <host name="localhost" cachePort="22233"/> 
     <host name="localhost" cachePort="22234"/> 
     <host name="localhost" cachePort="22235"/> 
     <host name="localhost" cachePort="22236"/> 
    </hosts> 
    </dataCacheClient> 
</dataCacheClients> 
</configuration> 

EDIT:

Изменение dataCacheClient к dataCacheClients результатов в этой ошибки:

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Web configuration error. Check your Web.config file, or revert to  the last working version.dataCacheClientName 

Source Error: 



Line 31:  <providers> 
Line 32:   <!--specify the named cache for session data--> 
Line 33:   <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="sample-cache" dataCacheClientName="VirtualCache"/> 
Line 34:  </providers> 
Line 35:  </sessionState> 

ответ

1

Да, вы можете.

При настройке поставщика состояния Sesison AppFabric вы можете предоставить имя dataCacheClient. Это имя раздела dataCacheClient для использования в разделе конфигурации dataCacheClients. По умолчанию поставщик будет использовать раздел dataCacheClient с именем «default».

, такие как

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false"> 
     <providers> 
     <add name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
      cacheName="default" 
      useBlobMode="true" 
      dataCacheClientName="dataCacheClient1"/> 
     </providers> 
    </sessionState> 

Вы можете иметь несколько dataCacheClient в файле configuraiton.

<dataCacheClients> 
    <dataCacheClient name="dataCacheClient1"> 
     <hosts> 
     <host name="CacheServer1" cachePort="22233" /> 
     </hosts> 
    </dataCacheClient> 
    <dataCacheClient name="dataCacheClient2"> 
     <hosts> 
     <host name="CacheServer1" cachePort="22233" /> 
     </hosts> 
    </dataCacheClient> 
    </dataCacheClients> 

Таким образом, нет проблем с наличием нескольких кластеров кеша.

Edit:

Здесь конфигурации для AppFabric 1,0

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

    <!-- cache client --> 
    <dataCacheClient>  
    <!-- cache host(s) --> 
    <hosts> 
     <host 
     name="CacheServer1" 
     cachePort="22233"/> 
    </hosts> 
    </dataCacheClient> 

    <system.web> 
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider"> 
     <providers> 
     <!-- specify the named cache for session data --> 
     <add 
      name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
      cacheName="NamedCache1" 
      sharedId="SharedApp"/> 
     </providers> 
    </sessionState> 
    </system.web> 
</configuration> 

Здесь конфигурации для AppFabric 1.1

<?xml version="1.0"?> 

<configuration> 
    <configSections> 
    <section name="dataCacheClients" 
      type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
      allowLocation="true" allowDefinition="Everywhere"/> 
    </configSections> 

    <dataCacheClients> 
    <dataCacheClient name="default" channelOpenTimeout="10000"> 
     <hosts> 
     <host name="CacheServer1" cachePort="22233" /> 
     </hosts> 
    </dataCacheClient> 
    </dataCacheClients> 

    <system.web> 
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false"> 
     <providers> 
     <add name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
      cacheName="default" 
      useBlobMode="true" 
      dataCacheClientName="default"/> 
     </providers> 
    </sessionState> 
    </system.web> 
</configuration> 
+0

Эй! спасибо, но я получаю внутреннюю ошибку сервера .. любая идея почему? – krishgopinath

+0

mssing a 's' в объявлении раздела. см. править – Cybermaxs

+0

Я отредактировал мой вопрос..посмотрите его .. – krishgopinath