2011-09-20 19 views
0

在Global.asax中我有Application_Error处理程序中的代码,它将错误消息存储在HttpRuntime.Cache中,将错误记录到应用程序日志文件,然后将用户转移到Error.aspx页面以显示消息在网站模板/主题内(通过从HttpRuntime.Cache中检索)。.Net Application_Error

我想知道的是,如果有一个好方法来管理HttpRuntime.Cache内容。

目前,我使用在全局可用的常量文件中定义的键设置HttpRuntime.Cache值,然后在后面的Error.aspx代码中明确地删除它。

有没有一种更明智的方法来确保在错误处理完成后能够正确清理HttpRuntime.Cache?

为了从上下文抽象:

治法设置在中央存储位置 控制转到方法b仅在成功地读出值使用从中央存储 的值的某些值,应方法b清除值从存储

限制:无法将控制返回给MethodA。一旦MethodB完成,程序结束。

回答

0

恕我直言,你在正确的轨道上。

我在过去做过的事情是拥有一个DTO(数据传输对象,一个轻量级数据对象),用于保存异常信息并存储在Session中。捕获错误并强制重定向到错误页面的代码还会在DTO中设置一个标志来说明错误是否可恢复,如果存在,它还会在DTO中存储一个URL - 这意味着错误页面可以呈现出一个链接让用户点击回到他们被打断的地方(你控制着链接,并且无论结束了什么,所以你可以把它们发回给你的应用程序中的任何你喜欢的地方,或者重新创建一个页面尽可能多地为他们继续)。

请记住,缓存是全局的,因此您可以用另一个用户的覆盖一个用户的例外信息。

相关问题