Caching 以编程方式使缓存页无效时,不会调用ValidateCacheOutput函数

Caching 以编程方式使缓存页无效时,不会调用ValidateCacheOutput函数,caching,Caching,我在以编程方式使缓存页面无效方面遇到问题 我编写了一个用于发布RSS提要的页面,该页面以预设的时间间隔缓存,比如3分钟。但是,当有新的UMM消息被提出并保存到数据库时,页面应被重新缓存 对于此任务,我使用了MS文档中说明的“以编程方式使缓存页面无效”的解决方案。尽管我编写了以下函数: public static void ValidateCacheOutput(HttpContext context, Object data, ref HttpValidationStatus status)

我在以编程方式使缓存页面无效方面遇到问题

我编写了一个用于发布RSS提要的页面,该页面以预设的时间间隔缓存,比如3分钟。但是,当有新的UMM消息被提出并保存到数据库时,页面应被重新缓存

对于此任务,我使用了MS文档中说明的“以编程方式使缓存页面无效”的解决方案。尽管我编写了以下函数:

public static void ValidateCacheOutput(HttpContext context, Object data, ref HttpValidationStatus status)
        {
            if (((bool)context.Application["IsNewUMMRaised"]) == true)
                status = HttpValidationStatus.Invalid;
            else
                status = HttpValidationStatus.Valid;
        }
并在Page_load函数的开头添加了以下代码

Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(ValidateCacheOutput), null);

Following code is executed when a UMM is saved to database.

 Application["IsNewUMMRaised"] = true;

问题在于,当访问网页时,不会调用上述事件处理程序函数,即在预设的时间间隔内重新缓存网页,即使应用程序变量
isnewummrised
设置为true。我想知道为什么它是这样工作的,我的代码应该如何修改,以便在访问页面时调用上述事件处理程序函数。

很抱歉,这个问题似乎是由在页面加载函数中调用的Response.End()函数引起的。删除此代码行后,访问页面时会正确调用事件处理程序函数。

很抱歉,此问题似乎是由在页面加载函数中调用的Response.End()函数引起的。删除此代码行后,在访问页面时会正确调用事件处理程序函数。

这仍然是一个问题:在注释输出Response.End()代码行之后,RSS提要适用于FireFox,但不适用于Internet Explorer,因为输出包含RSS XML内容和页面HTML内容。Internet Explorer不允许页面HTML内容。因此问题尚未解决。我想知道有人知道如何解决这个问题。感谢您的帮助。这仍然是一个问题:在注释掉Response.End()代码行之后,RSS提要可以与FireFox一起使用,但不能与Internet Explorer一起使用,因为输出包含RSS XML内容和页面HTML内容。Internet Explorer不允许页面HTML内容。因此问题尚未解决。我想知道有人知道如何解决这个问题。谢谢你的帮助。