Caché de salida ASP.NET con ganchos personalizados
Usando el NCache proveedor de salida, la salida de páginas y controles se almacena en la caché. En algunos escenarios, puede resultar muy útil si la salida de la página/control se puede agrupar según algunos criterios antes de insertarla en la memoria caché. Aquí para proporcionar al usuario final un mayor control, NCache proporciona un concepto de "ganchos". Los ganchos permiten a los usuarios agrupar la salida de páginas/controles antes de su inserción en el caché.
Para implementar la caché de salida de ASP.NET con enlaces personalizados, se requieren los siguientes cambios de configuración:
Requisitos previos para utilizar la caché de salida de ASP.NET con enlaces personalizados
- Para utilizar la caché de salida de ASP.NET con enlaces personalizados, instale los siguientes paquetes NuGet en su aplicación según su NCache Versión:
- Empresa: AspNet.OutputCache.NCache
- Profesionales: AspNet.OutputCache.NCache.Profesional
- 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: NOutputCacheProviderNOutputCacheProvider.
- 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 .
Modificar Web.Config
Modificar el web.config para implementar la caché de salida de ASP.NET con enlaces personalizados.
<!-- caching section group -->
<caching>
<outputCache defaultProvider="NOutputCacheProvider">
<providers>
<add name="NOutputCacheProvider"
type="Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a5376"
exceptionsEnabled="false"
enableLogs="true"
cacheName="demoClusteredCache"
writeExceptionsToEventLog="false"
hookAssemblyName="OutputCache, Version=x.x.x.x, Culture=neutral, PublicKeyToken=null" hookClassName="Sample.OutputCacheProvider.OutputCacheHook.OutputCacheHookSample"/>
</providers>
</outputCache>
</caching>
Note
Reemplaza Versión=xxxx con el actual NCache versión que tiene instalada.
Ejemplo de implementación de IOutputCacheHook
class OutputCache : IOutputCacheHook
{
public void Initialize()
{
// initialize required elements here, according to business logic.
}
public CacheMetadata OnCachingOutput(HttpContext context, string key, object value, CacheOperation operation, ref DateTime utcExpiry)
{
CacheMetadata cacheMetaData = null;
if (context != null)
{
cacheMetaData = new CacheMetadata();
// Put required business logic to categorize input parameter key in desired group
// Groups, sub groups, tags, named tags and dependencies can be assigned
// to object of cacheMetaData which is returned to be inserted into cache
cacheMetaData.GroupName = "vendorState";
cacheMetaData.Dependency = new KeyDependency(key);
utcExpiry = DateTime.Now.AddMinutes(5);
}
return cacheMetaData;
}
public void Dispose()
{
// Dispose the initialized elements here
}
}
Miembros de configuración
La caché de salida con enlaces personalizados permite agrupar datos antes de almacenarlos en la caché. Para implementar IOutputCacheHook
, crea una clase que se extienda IOutputCacheHook
. Las siguientes tablas enumeran las propiedades y métodos que se deben implementar.
Métodos | Descripción |
---|---|
Initialize |
Inicializa los elementos requeridos de OutputCacheHook . |
OnCachingOutput |
Toma como entrada la HttpContext instancia para la solicitud actual, string clave y object El valor generado por el marco para la salida se pasa como parámetro de entrada. Parámetro de entrada CacheOperation Se puede agregar o configurar un tipo de OutputCache Provider operaciones de Add y Set . DateTime utcExpiry se pasa como parámetro de referencia que permite que el código del usuario final restablezca la caducidad de un par clave-valor particular. Si no se establece el valor de vencimiento, se utiliza el valor predeterminado proporcionado por el marco. Este método regresa CacheMetadata que puede tener información adicional sobre el grupo, subgrupo, etiqueta, etiqueta con nombre y configuración de dependencia. Este método funciona como un gancho entre el OutputCache Código de proveedor y usuario. Se llama cuando el marco genera la salida pero antes de insertarla en el caché. Por lo tanto, permitir un enlace intermedio para un usuario, donde se puede agregar información adicional con CacheMetadata . |
Dispose |
Libera recursos que ya no son utilizados por OutputCacheHook . |
Vea también
.NETO: Alachisoft.NCache.OutputCacheProvider espacio de nombres