Buenas tardes, el problema que tengo es que agregué a mi código el método Page_UnLoad para cerrar y hacer un dispose al ReportDocument me marca error de ruta de acceso al informe no válida al cambiar de página
protected void Page_Init(object sender, EventArgs e) { if (!Page.IsPostBack) { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(strConnStringReport); user = builder.UserID; password = builder.Password; db = builder.InitialCatalog; server = builder.DataSource; try { reportdocument = new ReportDocument(); string nombreReporte = string.Empty; if (Request.QueryString["tiporeporte"] == "Produccion") { nombreReporte = "corReporteProduccion.rpt"; } else if (Request.QueryString["tiporeporte"] == "Cortos") { nombreReporte = "corReporteProduccion_Cortos.rpt"; } else if (Request.QueryString["tiporeporte"] == "Excedentes") { nombreReporte = "corReporteProduccion_Excedentes.rpt"; } else if (Request.QueryString["tiporeporte"] == "Recubrimientos") { nombreReporte = "corReporteProduccion_Recubrimientos.rpt"; } else if (Request.QueryString["tiporeporte"] == "Copias") { nombreReporte = "corReporteProduccion_Copias.rpt"; } else if (Request.QueryString["tiporeporte"] == "Informacion") { nombreReporte = "corReporteProduccion_InfoPedidos.rpt"; } else { nombreReporte = "corReporteProduccion.rpt"; } reportdocument.Load(Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/ReportesRSCPCM/Produccion"), nombreReporte)); reportdocument.SetDatabaseLogon(user, password, server, db); reportdocument.SetParameterValue("@cust_num", Request.QueryString["cust_num"]); reportdocument.SetParameterValue("@co_num", Request.QueryString["co_num"]); reportdocument.SetParameterValue("@FechaInicial", Request.QueryString["FechaInicial"] + " " + Request.QueryString["HoraInicial"]); reportdocument.SetParameterValue("@FechaFinal", Request.QueryString["FechaFinal"] + " " + Request.QueryString["HoraFinal"]); reportdocument.SetParameterValue("@whse", Request.QueryString["whse"]); crReporteProduccion.ReportSource = reportdocument; Session["crReporteProduccion"] = reportdocument; //reportdocument.Close(); //reportdocument.Dispose(); GC.Collect(); GC.WaitForPendingFinalizers(); } catch (Exception x) { throw x; } } else { reportdocument = new ReportDocument(); reportdocument = (ReportDocument)Session["crReporteProduccion"]; crReporteProduccion.ReportSource = reportdocument; } }
protected void Page_UnLoad(object sender, EventArgs e) { reportdocument.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); }