【发布时间】:2012-03-18 13:24:21
【问题描述】:
1.-我正在使用报告服务,有时我在尝试加载报告时收到此错误ASP.NET session has expired or could not be found。
2.-我意识到即使用户相同,当 Session.SessionID 属性更改时也会出现此错误。如果它没有改变,则加载报告。我的意思是,如果我多次刷新报告,只要 Session.SessionID 与上一次相同,就会加载报告。
3.-微软文档说:
当使用基于 cookie 的会话状态时,ASP.NET 不会分配 在使用 Session 对象之前存储会话数据。作为一个 结果,为每个页面请求生成一个新的会话 ID,直到 会话对象被访问。如果您的应用程序需要静态 整个会话的会话 ID,您可以实现 应用程序的 Global.asax 文件中的 Session_Start 方法并存储 Session 对象中的数据来修复会话 ID,或者您可以使用代码 在应用程序的另一部分显式存储数据 会话对象。
如果您的应用程序使用无 cookie 会话状态,则 会话 ID 在第一次页面查看时生成并维护 整个会话。
关键是我不能使用无cookie会话状态,因为我需要cookie。
我能做些什么来避免这个错误?或者我可以做些什么来避免 Session.SessionID 在每次请求时都发生变化?
【问题讨论】:
标签: asp.net reporting-services session-state sessionid