2
我的问题是,我有一个带有水晶报告的ASP.Net应用程序。我必须将Crystal报表的ReportDocument
对象存储在会话状态中,这是一个非托管资源。清理会话中的非托管资源,如Crystal Report文档
我的问题是:请问ReportDocument
对象上Session.Abandon
处理掉,否则我将不得不手动做我自己,如果我必须手动从会话状态中删除ReportDocument
对象。我应该遵循什么过程,因为在Session_End
事件中,我不知道存储在SessionState
中的对象的名称是什么,它们都不能识别ReportDocument
对象存储在Session
中的Key
。
请帮助...
我正在使用'InProc'会话模式,所以我不需要序列化要存储在会话状态中的对象的副本,还是对象在存储在会话中之前序列化自己? –
是的,你可能是对的,如果你使用InProc会话模式,我不认为这个对象是序列化的。在这种情况下,你能解释为什么你不知道钥匙吗?密钥只需要在每个会话中唯一,例如session [“report”]可以在多个会话中正常工作,每个会话将获得它自己的版本。如果您需要存储许多报告,然后使用一个密钥存储一组报告。 –
我有超过15个页面,每个页面都在会话中存储他们自己的Crystal Reports文档,以利用Crystal Reports的分页,如果我没有将它放在Session中,这将不起作用。我之所以这么说,是因为可能会有更多的页面添加更多的会话中存储的Document对象... –