Настройка 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.

Другие вопросы по тегам