Tengo un formulario web que contiene un control ReportViewer, un elemento DIV para que pueda ver que la página realmente se renderiza. Veo que mi página se carga correctamente, veo el acceso al servicio de informes en Fiddler, pero nunca aparece nada.Control del visor de informes (web) Muestra el informe en blanco
Actualmente, estoy usando un informe con texto estático, sin consultas, para asegurarme de que puedo aislar el problema.
Mi página es la siguiente:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportViewer.aspx.cs" Inherits="PeopleNet.Web.Views.Reports.ReportViewer" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/scripts/jquery-1.7.2.js" />
<asp:ScriptReference Path="~/scripts/fixReportViewer.js" />
</Scripts>
</asp:ScriptManager>
<div>
This is the report viewer page...
</div>
<rsweb:ReportViewer ID="ReportViewer1" runat="server"></rsweb:ReportViewer>
</form>
</body>
</html>
El código para mostrar el informe es:
protected void Page_Load(object sender, EventArgs e)
{
this.ReportViewer1.ServerReport.ReportServerUrl = ConfigurationFacade.ReportServerUri;
this.ReportViewer1.ServerReport.ReportPath = { path to report name };
this.ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials(); // custom class implementing IReportServerCredentials as described in various places around the web, including SO
this.ReportViewer1.ServerReport.Refresh();
}
Mi archivo web.config se configura con los HttpHandlers según sea necesario:
<system.web>
<!-- abbreviated... -->
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" />
</httpHandlers>
</system.web>
Y:
<system.webServer>
<!-- abbreviated... -->
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</handlers>
</system.webServer>
El servidor ejecuta Windows 2008 y SQL Server 2008 R2.
estoy usando la versión de SQL Server 2012 del espectador, ya que estamos en el proceso de actualización de los entornos de 2012.
he comprobado en varias ocasiones que el informe es accesible desde el ReportManager, sin problemas de ningún tipo .
He estado intentando acceder a esto en IE9, después de haber visto varios problemas planteados con otros navegadores.
Actualmente estoy (solo para pruebas) pasando mis credenciales como las credenciales del servidor de informes. Soy un administrador de Reporting Services, así como un miembro del grupo de administradores del servidor en el servidor.
He comprobado tanto el registro de eventos como el registro de ReportServerService, y no he encontrado nada extraño.
ACTUALIZACIÓN: Parece que cuando cambie el AsyncRendering a falso, y asegurarse de que no tratan de "SetParameters" con una colección vacía, sobre todo esto se aclare:
this.ReportViewer1.AsyncRendering = false;
¿Qué soy yo falta en la configuración/código aquí?
Solo una pregunta/pregunta tonta: ¿ha comprobado esto con un informe nuevo y básico (por ejemplo, solo un cuadro de texto con texto codificado)? Además, ¿puede agregar qué versión de los controles ReportViewer está utilizando? – Jeroen
Sí, en este momento estoy usando una página simple con texto estático, solo para asegurarme de que puedo aislar el problema. – reallyJim
¿Todavía tiene un problema o su actualización significa que lo ha resuelto? –