I truly hope someone may have some suggestions.
I have a .NET website that utilizes SSRS and the ReportViewer control.
When the user runs a short lived report, the report runs great (i.e. report runs in 20-30 seconds).
However, if the report runs for longer than a minute, the ReportViewer control displays that there was a 401 error (The remote server returned an error: (401) Unauthorized.)
If I run the Chrome Developer tools, and watch the network traffic, I discover that the URL being hit is:
Reserved.ReportViewerWebControl.axd?OpType=SessionKeepAlive&ControlID=36510a1dfa694d3e8b87245509c24f04
The response back from the server is 500 - Internal server error.
We are running SQL Server Reporting Services 2017.
On the report server, it is set to "Allow the report to run indefinitely (no timeout)", and to retain all history snapshots.
On the Web-server running the Report Viewer, the session information should be stored in-proc. I am not on a load balanced server at this point.
The Timeout is set to 20 minutes:
<sessionState timeout="20" mode="InProc" />
In the code, the script manager is set to have an AsyncPostbackTimeout that is ridiculously long:
<asp:ScriptManager ID="scriptManager" runat="server" AsyncPostbackTimeout="10000" ></asp:ScriptManager>
<rsweb:ReportViewer ID="ssrsReportViewer" runat="server"
width="875" Height="500"
AsyncRendering="true" KeepSessionAlive="true"
ProcessingMode="Remote"
ExportContentDisposition="OnlyHtmlInline"
SizeToReportContent="false" >
</rsweb:ReportViewer>
Any thoughts or ideas? I know that the ReportViewer is registered in web.config, because it works if exact same report runs on a smaller set of data (i.e. runs faster).