tag route password net mvc for data asp all asp.net iis timeout reportviewer

asp.net - route - forms asp net core



Los tiempos de espera de ReportViewer a pesar de las configuraciones de tiempo de espera (3)

Tengo una aplicación ASP.NET que expone un Microsoft ReportViewer (en realidad una aplicación MVC3 con un WebForm que aloja el ReportViewer). Al ejecutar informes grandes, se produce un tiempo de espera que hace que la solicitud se detenga y se muestre una página en blanco en lugar de un informe. Sin embargo, los siguientes parámetros de tiempo de espera se establecen mediante programación:

Viewer.ServerReport.Timeout = Configuration.ReportViewerTimeout; ScriptManager.AsyncPostBackTimeout = Configuration.ReportViewerAjaxTimeout;

Los valores respectivos son -1 y 0, que según la documentación se interpretan como sin tiempo de espera. También probé grandes valores, no hizo ninguna diferencia.

Después de aproximadamente un minuto o más, esperando que se cargue el informe (cuadro de mensaje "Cargando"), aparece un informe en blanco y lo veo en la ventana de mi consola Firebug:

Abortado

Sys.WebForms.PageRequestManagerTimeoutException: la solicitud del servidor ha caducado.

[Interrumpir en este error] this._endPostBack (this._cr ... anagerTimeoutError (), remitente, nulo);

También intenté agregar esto a mi web.config:

<httpRuntime maxRequestLength="1024000" executionTimeout="999999" />

Y en IIS> mi sitio> Configuración avanzada> Límites de conexión, establezco "Tiempo de espera de conexión (segundos)" en 1200. Todo esto no hizo ninguna diferencia.

¿Alguien sabe lo que podría faltar?


Agregar dos de los ajustes de configuración mencionados anteriormente fue el truco para mí.

En el archivo web.config para el sitio, establezcaecutionTimeout = "10800":

<httpRuntime maxRequestLength="2147483647" executionTimeout = "10800"/>

En el Site.Master set AsyncPostBackTimeout = "56000":

<asp:ToolkitScriptManager ID="smMaster" runat="server" AsyncPostBackTimeout="56000" />


Resulta que la respuesta es: ¡En realidad no falta nada!

A medida que sucede, el valor de tiempo de espera de ScriptManager no se conserva en ViewState (a diferencia del valor de tiempo de espera del ReportViewer) y el código solo lo configuró una vez dentro de un bloque if (!PostBack) . Se corrige al establecer la propiedad AsyncPostBackTimeout del ScriptManager en cada solicitud (incluso las devoluciones de datos). Una alternativa es establecerlo en un valor fijo utilizando el diseñador de Visual Studio WebForm.