Cuando usaba Cache en el pasado, siempre tenía cuidado con la inconsistencia entre la versión de datos en Cache y la versión de datos en la base de datos. Aunque la dependencia de caché de archivos implementada a través de activadores + IO de archivos también puede lograr actualizaciones oportunas de los datos almacenados en caché, cada uno de ellos. La aplicación genera un archivo IO no es muy económico y el rendimiento del activador no es muy alto, por lo que al agregar, eliminar o modificar, a menudo se logra eliminando el valor de la clave de caché, pero puede haber algunas omisiones. SqlCacheDependency se implementa en asp.net 2.0. Este artículo describe cómo implementar SqlCacheDependency en asp.net 2.0:
Primero, agregue el siguiente código al archivo web.config system.web node:
<almacenamiento en caché>
<sqlCacheDependency habilitado="true">
<bases de datos>
<agregar nombre="AtlasDemoDb" ConnectionStringName="AtlasDemoDbConnectionString" pollTime="12000"></add>
</bases de datos>
</sqlCacheDependency>
</caching>
De esta manera, se configura una base de datos dependiente de la caché y el EnableCaching del objeto ObjectDataSource en la página se establece en verdadero. Luego, establezca la propiedad SqlCacheDependency en AtlasDemoDb:SimpleDemo1, AtlasDemoDb es el nombre de la base de datos de caché configurada en la web. .config y SimpleDemo1 es el nombre de una tabla en la base de datos.
Así, el sistema también tendrá los siguientes problemas:
La base de datos 'AtlasDemoDb' no está habilitada para notificaciones de caché SQL.
Para habilitar una base de datos para notificaciones de caché SQL, use el método System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications o la herramienta de línea de comandos aspnet_regsql. Para utilizar esta herramienta, ejecute "aspnet_regsql.exe -?" para obtener más detalles.
Como se mencionó anteriormente, es problemático ejecutar aspnet_regsql.exe. Puede completarlo en el evento Page_Load.
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString, "SimpleDemo1");
De esta manera puedes usar SqlCacheDependency. Mañana probaré el rendimiento de este método. Tengo mucho sueño hoy, así que primero me iré a la cama
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html