ReportViewer コントロール (DIV 要素) を含む Web フォームがあるので、ページが実際にレンダリングされることを確認できます。ページが適切に読み込まれ、Fiddler でレポート サービスにアクセスしていることがわかりますが、何も表示されません。
現在、問題を確実に切り分けるために、静的テキストを含むレポートを使用しており、クエリは使用していません。
マイページは以下の通りです。
<%@ 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>
レポートを表示するコードは次のとおりです。
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();
}
私の web.config ファイルは、必要に応じて HttpHandlers で構成されています。
<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>
と :
<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>
サーバーは、Windows 2008 および SQL Server 2008 R2 を実行します。
環境を 2012 に更新中なので、SQL Server 2012 バージョンのビューアーを使用しています。
ReportManager からレポートにアクセスできることを繰り返し確認しましたが、何の問題もありません。
私は IE9 でこれにアクセスしようとしてきましたが、他のブラウザーでさまざまな問題が報告されています。
私は現在 (テストのみ)、自分の資格情報をレポート サーバーの資格情報として渡しています。私は Reporting Services 管理者であり、サーバーのサーバー管理者グループのメンバーでもあります。
イベント ログと ReportServerService ログの両方を確認しましたが、問題はありませんでした。
更新: AsyncRendering を false に変更し、空のコレクションで "SetParameters" を試行しないようにすると、これはほとんど解決されます。
this.ReportViewer1.AsyncRendering = false;
ここの構成/コードで何が欠けていますか?