Propriedades do provedor de estado de sessão ASP.NET
Armazenando sessões ASP.NET em NCache não requer programação. NCache ASP.NET Session State Provider is a custom SessionStateStoreProviderBase
implementation for an ASP.NET application. To configure and fetch ASP.NET Sessions in your application, the following modifications are required.
Note
Este recurso também está disponível em NCache Professional.
ASP.NET Session State Prerequisites
- Instale os seguintes pacotes NuGet em seu aplicativo com base em seu NCache versão:
- Empresa: AspNet.SessionState.NCache
- Profissional: AspNet.SessionState.NCache.Profissional
- Código aberto: AspNet.SessionState.NCache.Código aberto
- O cache deve estar em execução.
Modify asp.net session state Tag
Edite o seu aplicativo web.config arquivo e modifique o <sessionState>
seção conforme abaixo.
<configuration>
...
<sessionState cookieless="false"
regenerateExpiredSessionId="true"
mode="Custom"
customProvider="NCacheSessionProvider"
timeout="20">
<providers>
<add name="NCacheSessionProvider"
type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider"
cacheName="demoCache"
sessionAppId="demoApp"
useInProc="false"
enableLogs="false"
exceptionsEnabled="true"
writeExceptionsToEventLog="false"
AsyncSession="false"
useJsonSerialization="false"
enableLogs="false"
enableSessionLocking="true"
sessionLockingRetry="-1"
emptySessionWhenLocked="false" />
</providers>
</sessionState>
...
</configuration>
Modificar a Tag MachineKey para Web Farms
No caso de web farms, adicione o <machineKey>
entrada sob <system.web>
seção. É necessário gerar IDs de sessão ASP.NET da mesma maneira em todos os nós.
Saiba como gerar uma chave de máquina para um web farm:
Gerar uma chave de máquina para um Web Farm (IIS 7)
<machineKey validationKey ="A01D6E0D1A5D2A22E0854CA612FE5C5EC4AECF24"
decryptionKey ="ACD8EBF87C4C8937" validation ="SHA1"/>
Serializando objetos de sessão
Antes de começar a usar NCache para armazenar e recuperar seus objetos de sessão do ASP.NET, você precisa saber que não pode armazenar esses objetos diretamente no cache. Para armazenar esses objetos de sessão dentro do cache, você precisa primeiro serializá-los. Existem diferentes métodos que você pode adotar para serializar seus objetos de sessão. Esses métodos são os seguintes:
Serialização Binária
Você pode usar esse método de serialização se tiver acesso ao código-fonte do aplicativo. Neste caso, você deve marcar todos os objetos (aqueles que deseja armazenar dentro do cache) como serializáveis.
Note
No entanto, esse método está obsoleto a partir do .NET 6.0 e, se você usar serialização binária ou serialização compacta em qualquer aplicativo ASP.NET, eles lançarão uma exceção informando os usuários sobre isso.
NCache Serialização compacta
Se você não pode ou não quer usar serialização binária, você pode usar NCache Serialização compacta para serializar seus objetos de sessão. É mais rápido e requer apenas a modificação dos arquivos de configuração em vez de modificar o código-fonte.
O único problema com esse método é que a alteração na configuração pode ser grande se o número de classes que você deseja serializar for grande.
Serialização JSON
Se alguma das técnicas de serialização mencionadas acima não funcionar para você, você poderá optar pela serialização JSON. A melhor parte desse método é que ele é super rápido e simples, pois requer apenas que você faça uma única alteração no seu web.config arquivo e o resto do trabalho é feito por NCache automaticamente em tempo de execução.
Basta definir o valor do usejsonserialization
sinalizar como True. Por padrão, o valor deste sinalizador é False.
Buscar dados da sessão
NCache permite visualizar todos os dados da sessão armazenados em um cache clusterizado por meio do NCache Módulo de estado da sessão. Todos os dados da sessão são adicionados ao cache especificado como um item de cache marcado com Tag: NC_ASP.net_session_data
.
Para recuperar dados de sessão armazenados anteriormente, os dados podem ser obtidos por GetByTag
API, que retorna um dicionário preenchido com IDs de sessão e dados de sessão associados armazenados no cache.
var allSessionData = cache.SearchService.GetByTag(new Tag("NC_ASP.net_session_data"));
Propriedades do estado da sessão
A seguir está a descrição dos diferentes pares de valores-chave especificados acima:
Vogal | Descrição |
---|---|
sessionAppId |
É opcional string atributo que especifica um identificador para garantir que o ID da sessão permaneça exclusivo caso vários aplicativos estejam usando o mesmo cache. O ID do aplicativo deve ser o mesmo de um aplicativo em um web farm. Se nenhum ID do aplicativo for especificado, nada será concatenado ao ID da sessão. |
cacheName |
Este é um requisito String atributo que especifica o nome do cache a ser usado para a sessão de cache. Se nenhum nome de cache for especificado, uma exceção de configuração será lançada. |
enableSessionLocking |
Um opcional Boolean atributo. Se este sinalizador estiver definido, o NCache O Provedor de Armazenamento de Sessão bloqueia exclusivamente o item de armazenamento de sessão para o qual são feitas diversas solicitações simultâneas. O padrão é falso. |
sessionLockingRetry |
Este é um opcional Integer atributo. Se enableSessionLocking for True e este número inteiro não for menor que 0, o NCache O provedor de armazenamento de sessão retornará uma sessão vazia após sessionLockingRetry , que especifica o número de tentativas para adquirir um bloqueio. O valor padrão é -1. |
writeExceptionsToEventLog |
Um opcional Boolean atributo. Se esse sinalizador for definido, todas as exceções da API de cache serão gravadas nos logs de eventos. O padrão é falso. |
enableLogs |
É opcional Boolean atributo. Quando esse sinalizador é definido, o provedor da loja registra todas as informações de erro. Os arquivos de log são criados em %NCHOME%\log-files\SessionStoreProvider (Windows) ou /opt/ncache/log-files/SessionStoreProvider (Linux). O padrão é falso. |
enableDetailLogs |
Um opcional Boolean atributo. Quando esse sinalizador é definido, o provedor da loja registra todas as informações de depuração. Os arquivos de log são criados em %NCHOME%\log-files\SessionStoreProvider (Windows) ou /opt/ncache/log-files/SessionStoreProvider (Linux). O padrão é falso. |
exceptionsEnabled |
Este é um opcional Boolean atributo que especifica se as exceções da API de cache são propagadas para a saída da página. Definir esse sinalizador como True é especialmente útil durante a fase de desenvolvimento do aplicativo, pois as exceções fornecem mais informações sobre as causas específicas da falha. O padrão é falso. |
operationRetry |
Especifica o número de vezes que o servidor tentará novamente a operação, caso uma conexão seja perdida com um servidor durante a execução de uma operação. Seu valor padrão é 0 (zero). |
operationRetryInterval |
Especifica o intervalo de tempo entre cada nova tentativa de operação, caso seja perdida a conexão com o servidor. Seu valor padrão é 0 (zero). |
usejsonserialization |
Este é um atributo booleano. Se você quiser usar a serialização JSON para seus objetos de sessão do ASP.NET, defina o valor desse atributo como True. Por padrão, o valor deste atributo é False. |
Veja também
.INTERNET: Alachisoft.NCache.Web.SessionState espaço para nome.