作成日: 2020/08/24 最終更新日: 2020/09/23
文書種別
使用方法
詳細
運用環境のサーバー(IIS)に配置したWebアプリケーションでWebViewerコントロールを使用すると、以下のようなエラーが発生する場合があります。
WebViewerコントロールはデフォルトではルート直下のレポートサービス(/api/reporting/)を使用してレポートの描画処理を実行する仕様になっています。
そのため、Webアプリケーションがサブディレクトリに配置されていると、正しいレポートサービスを参照することができず、エラーが発生します。
上記の問題に該当する場合は、運用環境におけるURLをReportService.Urlプロパティに設定してください。
◆サンプルコード(C#)
◆サンプルコード(VB.NET)
- レポートが見つかりません。
- 不正なレスポンス(レポート)
- Report rendering error.
WebViewerコントロールはデフォルトではルート直下のレポートサービス(/api/reporting/)を使用してレポートの描画処理を実行する仕様になっています。
そのため、Webアプリケーションがサブディレクトリに配置されていると、正しいレポートサービスを参照することができず、エラーが発生します。
■例
WebフォームのURL
https://example.com/WebApplication1/WebForm1.aspx
デフォルトで参照するレポートサービスのURL
https://example.com/api/reporting/
正しいレポートサービスのURL
https://example.com/WebApplication1/api/reporting/
上記の問題に該当する場合は、運用環境におけるURLをReportService.Urlプロパティに設定してください。
◆サンプルコード(C#)
protected void Page_Load(object sender, EventArgs e)
{
// 絶対パスを設定する場合
this.WebViewer1.ReportService.Url = "https://example.com/WebApplication1/api/reporting/";
// アプリケーションルートからの相対パスを設定する場合
this.WebViewer1.ReportService.Url = Request.ApplicationPath.TrimEnd('/') + "/api/reporting/";
}
◆サンプルコード(VB.NET)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' 絶対パスを設定する場合
'Me.WebViewer1.ReportService.Url = "https://example.com/WebApplication1/api/reporting/"
' アプリケーションルートからの相対パスを設定する場合
Me.WebViewer1.ReportService.Url = Request.ApplicationPath.TrimEnd("/"c) + "/api/reporting/"
End Sub
関連情報
旧文書番号
85921