Configurar ASP.NET Core IDdistribuídoCache
Você também pode usar ASP.NET Core Sessões com NCachede IDistributedCache
Fornecedor. ASP.NET Core fornece o AddDistributedMemoryCache
method to add a default implementation of a IDdistribuídoCache. No entanto, para utilizar NCache como um cache distribuído para armazenar sessões ou objetos ASP.NET, NCache fornece seu próprio método de extensão, AddNCacheDistributedCache
, que adiciona NCache como o cache distribuído padrão como uma implementação de IDistributedCache
.
Prerequisites to Configure ASP.NET Core IDdistribuídoCache
- Instale os seguintes pacotes NuGet em seu aplicativo com base em seu NCache versão:
- Empresa: NCache.Microsoft.Extensões.Cache
- Profissional: NCache.Microsoft.Extensões.Caching.Professional
- Código aberto: NCache.Microsoft.Extensions.Caching.OpenSource
- Para utilizar a extensão, inclua os seguintes namespaces em seu aplicativo em Inicialização.cs:
- O cache deve estar em execução.
- Para obter detalhes da API, consulte: AdicionarNCacheCache Distribuído, AdicionarNCacheDistribuídoCacheProvider.
- Certifique-se de que os dados que estão sendo adicionados serializável.
- Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
- Para lidar com quaisquer exceções não vistas, consulte o guia de solução de problemas seção.
Etapa 1: configurar serviços
NCache fornece o AddNCacheDistributedCache
método de extensão em IServiceCollection
, que requer apenas um nome de cache em NCache e quaisquer configurações opcionais para armazenar as sessões. O objeto de configuração é o mesmo que NCache ASP.NET Core Provedor de sessão, que pode ser inicializado de forma semelhante. A configuração pode ser fornecida através do IOptions
inicializador também.
Existem dois métodos para especificar configurações:
- Através de sua aplicação em Inicialização.cs or
- No formato JSON em Appsettings.json da sua aplicação.
Método 1: especificando configurações em Startup.cs
Configure Startup.cs para cache único:
A AddNCacheDistributedCache
método é uma extensão do AddDistributedCache
método fornecido pelo ASP.NET Core. Este método leva as definições de configuração em Inicialização.cs do seu aplicativo ou os lê do arquivo JSON especificado.
Adicione o seguinte método e opções em Inicialização.cs da sua aplicação:
public void ConfigureServices(IServiceCollection services)
{
//Add framework services
services.AddMvc();
services.AddNCacheDistributedCache(configuration =>
{
configuration.CacheName = "demoCache";
configuration.EnableLogs = true;
configuration.ExceptionsEnabled = true;
});
}
Configure Startup.cs para vários caches:
Note
Esse recurso está disponível em NCache Enterprise só.
A AddNCacheDistributedCacheProvider
é uma extensão do AddDistributedCache
método fornecido pelo ASP.NET Core. Este método leva as definições de configuração no Inicialização.cs da sua aplicação. Você pode configurar vários caches usando o AddNCacheDistributedCacheProvider
método da seguinte forma:
public void ConfigureServices(IServiceCollection services)
{
//Add framework services
services.AddMvc();
services.AddNCacheDistributedCacheProvider( options =>
{
options.CacheConfigurations = new NCacheConfiguration[] {
new NCacheConfiguration() {
CacheName = "demoClusteredCache",
EnableLogs = true,
ExceptionsEnabled = true
},
new NCacheConfiguration(){
CacheName = "demoCache",
EnableLogs = true,
ExceptionsEnabled = true }
};
});
}
Método 2: especificando configurações em Appsettings.json
Você também pode especificar as configurações em seu aplicativo no formato JSON em Appsettings.json de sua aplicação. Usando esse método, você pode consultar as configurações fornecendo o nome da seção que contém as configurações do formato JSON em Inicialização.cs.
Configure Appsettings.json para cache único: Configure o Appsettings.json arquivo do seu aplicativo para configurar um único cache da seguinte forma:
{
"AppSettings": {
"SiteTitle": "ASP.NET MVC Music Store",
"CacheDbResults": true,
},
"NCacheSettings": {
"CacheName": "demoCache",
"EnableLogs": "True",
"RequestTimeout": "90"
},
}
Consulte essas configurações no Inicialização.cs como se segue:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheDistributedCache(Configuration.GetSection("NCacheSettings"));
services.AddSession();
}
Configure Appsettings.json para vários caches:
Configure o Appsettings.json arquivo do seu aplicativo para configurar vários caches da seguinte forma:
"NCacheFactorySettings": {
"NCacheConfigurations": [
{
"CacheName": "demoClusteredCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
"CacheName": "demoCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
// Configure more caches
}
]
}
Use o AddNCacheDistributedCacheProvider
método para se referir ao NCacheFactorySettings
seção em Inicialização.cs:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheDistributedCacheProvider(_config.GetSection("NCacheFactorySettings"));
services.AddSession();
}
Etapa 2: adicionar middleware ao aplicativo
Depois que o cache distribuído for adicionado ao serviço, as sessões poderão armazenar os dados em NCache. O UseSession
método de extensão fornecido pelo ASP.NET Core adicionará o middleware de sessão padrão ao aplicativo, mas utilizará NCache como seu cache.
Agora você pode prosseguir para usar NCache como o cache subjacente para o seu ASP.NET Core Sessões.
Propriedades de configuração
As configurações específicas para cache distribuído são explicadas abaixo:
Consulte o Documentação da API CacheConnectionOptions para obter mais detalhes sobre as propriedades desta classe.
Vogal | Formato | Descrição | Valor padrão |
---|---|---|---|
CacheName |
string (requerido) |
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. | - |
EnableLogs |
bool (Opcional) |
Se este sinalizador estiver definido, NCache registra todas as informações de erro. Os arquivos de log são criados em %NCHOME%\log-files\SessionState (Windows) ou /opt/ncache/log-files/SessionState (Linux). |
false |
EnableDetailLogs |
bool (Opcional) |
Quando este sinalizador é definido, NCache registra todas as informações de depuração. Os arquivos de log são criados em %NCHOME%\log-files\SessionState (Windows) ou /opt/ncache/log-files/SessionState (Linux). |
false |
ExceptionsEnabled |
bool (Opcional) |
Especifica se as exceções da API de cache são propagadas para a saída da página. Definir esse sinalizador é especialmente útil durante a fase de desenvolvimento do aplicativo, pois as exceções fornecem mais informações sobre as causas específicas da falha. | false |
WriteExceptionsToEventLog |
bool (Opcional) |
Se esse sinalizador for definido, todas as exceções da API de cache serão gravadas nos logs de eventos. | false |
RequestTimeout |
int |
Especifica o tempo limite para solicitações do cliente em segundos. | 90 |
OperationsRetry |
int (Opcional) |
Especifica o número de vezes que um servidor tenta novamente uma operação, caso a conexão seja perdida durante a execução de uma operação. | 0 |
OperationRetryInterval |
int (Opcional) |
Especifica o intervalo de tempo entre cada repetição de operação. | 0 |
Veja também
.INTERNET: Alachisoft.NCache.Cache.Distribuído espaço para nome.