c# - 从 Session 中清理非托管资源,如 Crystal Report Document

标签 c# asp.net .net-4.0 crystal-reports session-state

我的问题是我有一个带有 Crystal 报表的 ASP.Net 应用程序。我必须将 Crystal 报表的 ReportDocument 对象存储在 session 状态中,这是一种非托管资源。

我的问题是:ReportDocument 对象是否会在 Session.Abandon 上被处理掉,或者我必须自己手动完成,如果我必须手动删除ReportDocument 来自 session 状态的对象。我应该遵循什么过程,因为在 Session_End 事件中我不知道 SessionState 中存储的对象的名称是什么,也无法识别Key ReportDocument 对象存储在 Session 中。

请帮忙...

最佳答案

我相信,当您将对象存储在 session 中时,您只是简单地序列化对象当前状态的副本,该副本不会保留任何非托管资源,但原始对象会保留,您可以处理掉它将其保存到 session 后。

编辑

或者将所有报告存储在一个 session 对象中,该对象是一个具有单个键的集合。例如列表报告

关于c# - 从 Session 中清理非托管资源,如 Crystal Report Document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243836/

相关文章:

c# - 计算 Parallel.ForEach 使用的线程数

c# - Kentico UserInfoProvider.IsAuthorizedPerClass 未按预期工作

c# - 如何以排序安全的方式绑定(bind)到 DataGridRow 的 IsSelected 属性?

c# - 不明确的项目名称 nuget : appveyor

c# - 在 session 或替代解决方案中存储 linq-to-sql 对象

c# - 将参数传递给 EventHandler 中的方法

asp.net - 数据绑定(bind) : 'DynamicClass1' does not contain a property with the name 'EmployeeID'

c# - 安装 Visual Web Developer 2010 时出现问题?

c# - 设置文件夹权限

asp.net - WebSeal 反向代理后面的 .Net Web 应用程序