我的组织有一个ASP.NET应用程序,它是我们的SSRS报告的包装器。此应用程序基本上只为用户提供一系列下拉菜单,以导航到他们的报告,而不是让用户通过默认的SSRS报告管理器页面导航到报告。
在此应用程序中,我们遇到了用户遇到错误,特别是错误:“ASP.NET会话已过期或无法找到”。在查看报告仅几分钟后,尝试更改报告参数并重新运行报告后,用户就会发生这种情况。
我试图在ReportViewer控件中使用KeepSessionAlive =“true”,并在web.config中扩展Session Timeout值。这些都没有解决这个错误的技巧。
答案 0 :(得分:1)
根据有关会话状态模式的msdn文章:https://msdn.microsoft.com/en-us/library/ms178586.aspx
我们最终将其从默认的InProc模式切换到StateServer模式,因此无法重现错误。使用StateServer模式有一个额外的箍跳过,因为我们必须在我们的服务器上启用ASP.NET状态服务,将其设置为自动启动类型,然后从以下位置更新我们的web.config sessionState值:
<sessionState timeout="120"/>
为:
<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="120"/>