Настройка ncache asp.net провайдера сеансового состояния
Я пытаюсь настроить приложение mvc asp.net для Visual Studio 2013 на использование поставщика ncache для состояния сеанса.
До сих пор я добавил ссылку на проект Alachisoft.NCache.SessionStoreProvider и Alachisoft.NCache.Web.
Я также выполнил шаги, найденные здесь, включая пункт 9, касающийся web.config, и теперь у меня есть следующий раздел system.web в моем web.config
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" >
<assemblies>
<add assembly="Alachisoft.NCache.SessionStoreProvider,Version=4.1.0.0,Culture=neutral,PublicKeyToken=CFF5926ED6A53769"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
<sessionState cookieless="false" >
<providers>
<add name="NCacheSessionProvider"
type="Alachisoft.NCacheExpress.Web.SessionState.NSessionStoreProvider"
sessionAppId="NCacheTest"
cacheName="MyClusterCache"
writeExceptionsToEventLog="false"
enableLogs="false"/>
</providers>
</sessionState>
</system.web>
Однако, когда я отлаживаю свое приложение, оно все еще использует состояние сеанса inproc по умолчанию, так как все работает нормально, но мой кэш показывает количество объектов 0.
Используя API NCache, я могу просто добавлять элементы в кеш, что отображается в моей статистике консоли управления NCache.
Кто-нибудь может описать, как они это настроили, или увидеть что-то, чего мне не хватает? заранее спасибо
1 ответ
Я решил свою проблему, поняв, что мне нужно добавить атрибуты mode="Custom" и customProvider="XXXX" в тег sessionState в веб-конфигурации. Это сработало, когда я добавил это.
Моя рабочая веб-конфигурация теперь включает
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" >
<assemblies>
<add assembly="Alachisoft.NCache.SessionStoreProvider,Version=4.1.0.0,Culture=neutral,PublicKeyToken=CFF5926ED6A53769"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
<sessionState mode="Custom" customProvider="NCacheSessionProvider" cookieless="false" >
<providers>
<add name="NCacheSessionProvider"
type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider"
sessionAppId="NCacheTest"
cacheName="MyClusterCache"
writeExceptionsToEventLog="false"
enableLogs="false"/>
</providers>
</sessionState>
</system.web>
Когда я добавляю в мое состояние сеанса, я теперь вижу 1 объект, добавленный в мой кэш NCache.