Я думаю, что отмеченное решение не работает на II7 +. Итак, вот еще один подход, который я использовал для очень похожей проблемы.
Если вашей БД является SQL Server, вы можете использовать SQLDependency, но если нет, то обходным путем будет использование зависимости файла следующим образом.
Механизм вывода кэша поддерживает файловую зависимость, которая прекрасно работает. Каждый раз, когда файл зависимостей изменяется, ваша страница очищается автоматически.
Итак, вы можете сделать так, чтобы ваша dataentrypage записывал лог / текстовый файл после каждого успешного обновления базы данных. Сделайте файл журнала зависимым от рассматриваемой веб-страницы.
Итак. На вашей веб-странице.aspx.cs
защищенный void Page_Load (отправитель объекта, EventArgs e)
{
string fileDependencyPath = Server.MapPath ("~ / dblog / dataupdate.txt");
Response.AddFileDependency (fileDependencyPath);
// остальная часть кода
}
В ваших dataentrypage.aspx.cs
string path = "~/dblog/dataupdatelog.txt";
if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
{
File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
}
using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
{
w.WriteLine("\r\nLog Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString());
string strlog = "Some additional info";
w.WriteLine( strlog);
w.WriteLine("__________________________");
w.Flush();
w.Close();
}