Configurar ASP.NET Core IDistributedCacheIDistributedCache
También puedes usar ASP.NET Core Sesiones con NCachees IDistributedCache
Proveedor. ÁSPID.NET Core proporciona AddDistributedMemoryCache
método para agregar una implementación predeterminada de un IDistributedCacheIDistributedCache. Sin embargo, para utilizar NCache como caché distribuido para almacenar sesiones u objetos ASP.NET, NCache proporciona su propio método de extensión, AddNCacheDistributedCache
, que agrega NCache como caché distribuido predeterminado como una implementación de IDistributedCache
.
Requisitos previos para configurar ASP.NET Core IDistributedCacheIDistributedCache
- Instale los siguientes paquetes de NuGet en su aplicación en función de su NCache Versión:
- Empresa: NCache.Extensiones.de.Microsoft.Almacenamiento en caché
- Profesionales: NCache.Microsoft.Extensions.Caching.Profesional
- Fuente abierta: NCache.Microsoft.Extensions.Caching.OpenSource
- Para utilizar la extensión, incluya los siguientes espacios de nombres en su aplicación en Inicio.cs:
- El caché debe estar ejecutándose.
- Para obtener detalles de la API, consulte: AñadaNCacheCaché distribuido, AñadaNCacheProveedor de caché distribuidaDistributedCacheProvider.
- Asegúrese de que los datos que se agregan sean serializable.
- Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
- Para manejar cualquier excepción no vista, consulte el Solucionando Problemas .
Paso 1: configurar servicios
NCache proporciona AddNCacheDistributedCache
método de extensión en IServiceCollection
, que requiere solo un nombre de caché en NCache y cualquier configuración opcional para almacenar las sesiones. El objeto de configuración es el mismo que NCache ASP.NET Core Proveedor de sesión, que se puede inicializar de manera similar. La configuración se puede realizar a través del IOptions
inicializador también.
Hay dos métodos para especificar configuraciones:
- A través de su aplicación en Inicio.cs or
- En formato JSON en Configuración de aplicaciones.json de su aplicación
Método 1: especificar configuraciones en Startup.cs
Configure Startup.cs para caché único:
El AddNCacheDistributedCache
El método es una extensión del AddDistributedCache
método proporcionado por ASP.NET Core. Este método toma los ajustes de configuración en Inicio.cs de su aplicación, o los lee desde el archivo JSON especificado.
Agregue el siguiente método y opciones en Inicio.cs de su aplicación:
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 varios cachés:
Note
Esta función está disponible en NCache Enterprise solamente.
El AddNCacheDistributedCacheProvider
es una extensión de la AddDistributedCache
método proporcionado por ASP.NET Core. Este método toma los ajustes de configuración en el Inicio.cs de su aplicación. Puede configurar múltiples cachés usando el AddNCacheDistributedCacheProvider
método de la siguiente manera:
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: especificar configuraciones en Appsettings.json
También puede especificar las configuraciones dentro de su aplicación en formato JSON en Configuración de aplicaciones.json de su aplicación. Con este método, puede hacer referencia a las configuraciones proporcionando el nombre de la sección que contiene las configuraciones en formato JSON en Inicio.cs.
Configure Appsettings.json para caché único: Configura el Configuración de aplicaciones.json archivo de su aplicación para configurar un único caché de la siguiente manera:
{
"AppSettings": {
"SiteTitle": "ASP.NET MVC Music Store",
"CacheDbResults": true,
},
"NCacheSettings": {
"CacheName": "demoCache",
"EnableLogs": "True",
"RequestTimeout": "90"
},
}
Consulte estas configuraciones en el Inicio.cs como sigue:
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 varios cachés:
Configura el Configuración de aplicaciones.json archivo de su aplicación para configurar múltiples cachés de la siguiente manera:
"NCacheFactorySettings": {
"NCacheConfigurations": [
{
"CacheName": "demoClusteredCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
"CacheName": "demoCache",
"EnableLogs": true,
"RequestTimeout": "90"
},
{
// Configure more caches
}
]
}
Ingrese al AddNCacheDistributedCacheProvider
método para referirse a la NCacheFactorySettings
sección en Inicio.cs:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheDistributedCacheProvider(_config.GetSection("NCacheFactorySettings"));
services.AddSession();
}
Paso 2: agregar middleware a la aplicación
Una vez que el caché distribuido se ha agregado al servicio, las sesiones pueden almacenar los datos en NCache. UseSession
método de extensión proporcionado por ASP.NET Core agregará el middleware de sesión predeterminado a la aplicación pero utilizará NCache como su caché.
Ahora puede proceder a utilizan el NCache como caché subyacente para su ASP.NET Core Sesiones
propiedades de configuración
A continuación se explican las configuraciones específicas del almacenamiento en caché distribuido:
Para obtener más detalles sobre cómo diseñar y realizar los esfuerzos de seguimiento y evaluación, refierase a Documentación de la API CacheConnectionOptions para obtener más detalles sobre las propiedades de esta clase.
Titular | Tipo de Propiedad | Descripción | Valor por defecto |
---|---|---|---|
CacheName |
string (requerido) |
Especifica el nombre de la caché que se utilizará para la sesión de almacenamiento en caché. Si no se especifica ningún nombre de caché, se generará una excepción de configuración. | - |
EnableLogs |
bool (opcional) |
Si se establece esta bandera, NCache registra toda la información del error. Los archivos de registro se crean en %NCHOME%\log-files\SessionState (Windows) o /opt/ncache/log-files/SessionState (Linux). |
false |
EnableDetailLogs |
bool (opcional) |
Cuando se establece esta bandera, NCache registra toda la información de depuración. Los archivos de registro se crean en %NCHOME%\log-files\SessionState (Windows) o /opt/ncache/log-files/SessionState (Linux). |
false |
ExceptionsEnabled |
bool (opcional) |
Especifica si las excepciones de la API de caché se propagan a la salida de la página. Establecer este indicador es especialmente útil durante la fase de desarrollo de la aplicación, ya que las excepciones brindan más información sobre las causas específicas del error. | false |
WriteExceptionsToEventLog |
bool (opcional) |
Si se establece este indicador, todas las excepciones de la API de caché se escriben en los registros de eventos. | false |
RequestTimeout |
int |
Especifica el tiempo de espera para las solicitudes de los clientes en segundos. | 90 |
OperationsRetry |
int (opcional) |
Especifica la cantidad de veces que un servidor reintenta una operación, en caso de que se pierda la conexión mientras se ejecuta una operación. | 0 |
OperationRetryInterval |
int (opcional) |
Especifica el intervalo de tiempo entre cada reintento de operación. | 0 |
Vea también
.NETO: Alachisoft.NCache.Caching.Distribuido espacio de nombres