Configura ASP.NET Core IDistributedCache
Puoi anche usare ASP.NET Core Sessioni con NCache'S IDistributedCache
Fornitore. ASP.NET Core fornisce il AddDistributedMemoryCache
metodo per aggiungere un'implementazione predefinita di IDistributedCache. Tuttavia, da utilizzare NCache come cache distribuita per archiviare sessioni o oggetti ASP.NET, NCache fornisce il proprio metodo di estensione, AddNCacheDistributedCache
, che aggiunge NCache come cache distribuita predefinita come implementazione di IDistributedCache
.
Prerequisiti
- Installa i pacchetti NuGet seguenti nell'applicazione in base al tuo NCache Versione:
- Enterprise: NCache.Microsoft.Estensioni.Memorizzazione nella cache
- Saloni professionali: NCache.Microsoft.Extensions.Caching.Professional
- Fonte aperta: NCache.Microsoft.Extensions.Caching.OpenSource
- Per utilizzare l'estensione, includi i seguenti spazi dei nomi nella tua applicazione in Avvio.cs:
- La cache deve essere in esecuzione.
- Per i dettagli dell'API, fare riferimento a: AggiungiNCachecache distribuita, AggiungiNCacheProvider di cache distribuito.
- Assicurati che i dati aggiunti lo siano serializzabile.
- Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
- Per gestire eventuali eccezioni invisibili, fare riferimento a Troubleshooting .
Passaggio 1: configurare i servizi
NCache fornisce il AddNCacheDistributedCache
metodo di estensione attivato IServiceCollection
, che richiede solo un nome cache in NCache ed eventuali configurazioni opzionali per archiviare le sessioni. L'oggetto di configurazione è lo stesso di NCache ASP.NET Core Provider di sessione, che può essere inizializzato in modo simile. La configurazione può essere fornita tramite il IOptions
anche l'inizializzatore.
Esistono due metodi per specificare le configurazioni:
- Attraverso la tua applicazione in Avvio.cs or
- In formato JSON in Appsettings.json della tua applicazione.
Metodo 1: specifica delle configurazioni in Startup.cs
Configura Startup.cs per cache singola:
I AddNCacheDistributedCache
metodo è un'estensione del AddDistributedCache
metodo fornito da ASP.NET Core. Questo metodo accetta le impostazioni di configurazione Avvio.cs della tua applicazione o li legge dal file JSON specificato.
Aggiungi il metodo e le opzioni seguenti in Avvio.cs della tua domanda:
public void ConfigureServices(IServiceCollection services)
{
//Add framework services
services.AddMvc();
services.AddNCacheDistributedCache(configuration =>
{
configuration.CacheName = "demoCache";
configuration.EnableLogs = true;
configuration.ExceptionsEnabled = true;
});
}
Configura Startup.cs per più cache:
Note:
Questa funzione è disponibile in NCache Enterprise solo.
I AddNCacheDistributedCacheProvider
è un'estensione di AddDistributedCache
metodo fornito da ASP.NET Core. Questo metodo accetta le impostazioni di configurazione nel file Avvio.cs della tua candidatura. È possibile configurare più cache utilizzando il file AddNCacheDistributedCacheProvider
metodo come segue:
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 }
};
});
}
Metodo 2: specifica delle configurazioni in Appsettings.json
Puoi anche specificare le configurazioni all'interno della tua applicazione in formato JSON in Appsettings.json della tua domanda. Utilizzando questo metodo, puoi fare riferimento alle configurazioni fornendo il nome della sezione contenente le configurazioni in formato JSON in Avvio.cs.
Configura Appsettings.json per cache singola: Configura il Appsettings.json file della tua applicazione per configurare una singola cache come segue:
{
"AppSettings": {
"SiteTitle": "ASP.NET MVC Music Store",
"CacheDbResults": true,
},
"NCacheSettings": {
"CacheName": "demoCache",
"EnableLogs": "True",
"RequestTimeout": "90"
},
}
Fare riferimento a queste configurazioni nel Avvio.cs come segue:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheDistributedCache(Configuration.GetSection("NCacheSettings"));
services.AddSession();
}
Configura Appsettings.json per più cache:
Configura il Appsettings.json file dell'applicazione per configurare più cache come segue:
"NCacheFactorySettings": {
"NCacheConfigurations": [
{
"CacheName": "demoClusteredCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
"CacheName": "demoCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
// Configure more caches
}
]
}
Usa il AddNCacheDistributedCacheProvider
metodo per fare riferimento a NCacheFactorySettings
sezione in Avvio.cs:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheDistributedCacheProvider(_config.GetSection("NCacheFactorySettings"));
services.AddSession();
}
Passaggio 2: aggiungere il middleware all'applicazione
Una volta aggiunta la cache distribuita al servizio, le sessioni possono archiviare i dati NCache. UseSession
metodo di estensione fornito da ASP.NET Core aggiungerà il middleware di sessione predefinito all'applicazione ma lo utilizzerà NCache come cache.
Ora puoi procedere a uso NCache come cache sottostante per il tuo ASP.NET Core Sessioni.
Proprietà di configurazione
Le configurazioni specifiche per la memorizzazione nella cache distribuita sono spiegate di seguito:
Fare riferimento a Documentazione dell'API CacheConnectionOptions per maggiori dettagli sulle proprietà di questa classe.
Member | Tipologia | Descrizione | Valore di default |
---|---|---|---|
CacheName |
string (Richiesto) |
Specifica il nome della cache da utilizzare per la sessione di memorizzazione nella cache. Se non viene specificato alcun nome cache, verrà generata un'eccezione di configurazione. | - |
EnableLogs |
bool (facoltativo) |
Se questo flag è impostato, NCache registra tutte le informazioni sull'errore. I file di registro vengono creati in %NCHOME%\log-files\SessionState (Windows) o /opt/ncache/log-files/SessionState (Linux). |
false |
EnableDetailLogs |
bool (facoltativo) |
Quando questo flag è impostato, NCache registra tutte le informazioni di debug. I file di registro vengono creati in %NCHOME%\log-files\SessionState (Windows) o /opt/ncache/log-files/SessionState (Linux). |
false |
ExceptionsEnabled |
bool (facoltativo) |
Specifica se le eccezioni dall'API della cache vengono propagate all'output della pagina. L'impostazione di questo flag è particolarmente utile durante la fase di sviluppo dell'applicazione poiché le eccezioni forniscono ulteriori informazioni sulle cause specifiche dell'errore. | false |
WriteExceptionsToEventLog |
bool (facoltativo) |
Se questo flag è impostato, tutte le eccezioni dall'API della cache vengono scritte nei registri eventi. | false |
RequestTimeout |
int |
Specifica il timeout per le richieste client in secondi. | 90 |
OperationsRetry |
int (facoltativo) |
Specifica il numero di volte in cui un server ritenta un'operazione, nel caso in cui la connessione venga persa durante l'esecuzione di un'operazione. | 0 |
OperationRetryInterval |
int (facoltativo) |
Specifica l'intervallo di tempo tra ogni tentativo di operazione. | 0 |
Vedere anche
.NETTO: Alachisoft.NCache.Caching.Distribuito spazio dei nomi.