Ho un modulo Web contenente un controllo ReportViewer, un elemento DIV in modo che possa vedere che la pagina effettivamente esegue il rendering. Vedo che la mia pagina viene caricata correttamente, vedo che il servizio di report è accessibile in Fiddler, ma non viene mai visualizzato nulla.Controllo visualizzatore report (Web) Mostra report vuoto
Allo stato attuale, sto utilizzando un rapporto con testo statico, senza query su di esso, al fine di garantire che isolare il problema.
mia pagina è il seguente:
<%@ 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>
Il codice per visualizzare il report è:
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();
}
mio file web.config è configurato con i gestori HTTP come richiesto:
<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>
E:
<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>
Il server esegue Windows 2008 e SQL Server 2008 R2.
Sto usando la versione di SQL Server 2012 dello spettatore, come siamo nel processo di aggiornamento nostri ambienti al 2012.
ho più volte verificato che la relazione è accessibile dal ReportManager, senza problemi di sorta .
Ho tentato di accedere a questo in IE9, dopo aver visto vari problemi dichiarati con altri browser.
Attualmente sono (solo per il test) passare le credenziali come credenziali del server di report. Sono un amministratore di Reporting Services e un membro del gruppo di amministratori di server sul server.
Ho controllato sia il registro eventi che il registro ReportServerService e non ho trovato nulla di sbagliato.
UPDATE: sembra quando cambiare l'AsyncRendering false, e far sì che io non cercare di "SetParameters" con un insieme vuoto, questo viene in gran parte chiarito:
this.ReportViewer1.AsyncRendering = false;
Che cosa sono io manca nella configurazione/codice qui?
Solo un assurdo check/domanda: hai controllato questo con un nuovo, semplice (ad esempio solo una casella di testo con testo hardcoded) rapporto pure? Inoltre, puoi aggiungere quale versione dei controlli di ReportViewer stai usando? – Jeroen
Sì, al momento, sto usando una semplice pagina con testo statico su di esso, solo per assicurarmi di poter isolare il problema. – reallyJim
Hai ancora un problema o il tuo aggiornamento significa che l'hai risolto? –