ASP.NET ReportViewer 错误 "ASP.NET session has expired or could not be found"

ASP.NET ReportViewer error "ASP.NET session has expired or could not be found"

我的组织有一个 ASP.NET 应用程序,它是我们 SSRS 报告的包装器。这个应用基本上只是为用户提供一系列下拉菜单来导航到他们的报告,而不是让用户通过默认的 SSRS 报告管理器页面导航到报告。

在此应用程序中,我们有用户遇到错误,特别是错误:"ASP.NET session has expired or could not be found"。在查看报告仅几分钟后,尝试更改报告参数并重新运行 报告后,用户就会发生这种情况。

我试图在我的 ReportViewer 控件中使用 KeepSessionAlive="true"` 并在我们的 web.config 中扩展会话超时值。这些都没有解决此错误的技巧。

根据有关会话状态模式的 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"/>