SSRS 在 MVC 中呈现的报告导致 404 错误

问题描述

在从我们的 SSRS 呈现 pdf 报告时,我遇到了一个问题,请参阅以下内容。我试图查看不同的来源,但到目前为止没有任何效果

Microsoft.Reporting.WebForms.Internal.soap.ReportingServices2005.Execution.RSExecutionConnection.MissingEndpointException: 'The attempt to connect to the report server Failed. Check your connection information and that the report server is a compatible version.'

我有这些应该可以工作的代码行:

var parameters = new List<ReportParameter>
{ 
    new ReportParameter("paramter_1","paramter_1_value"),};
var reportserverUrl = ConfigurationManager.AppSettings["reportserverUrl"];
reportViewer.ServerReport.reportserverUrl = new Uri(reportserverUrl);
reportViewer.ServerReport.ReportPath = '/ReportFolder/ReportName';
reportViewer.ServerReport.reportserverCredentials = new CustomCredentials();
reportViewer.ServerReport.SetParameters(parameters);
reportViewer.ServerReport.Refresh();

var mimeType = "";
var encoding = "";
var filenameExtension = "pdf";
string[] streamids = null;
Warning[] warnings = null;
var outputFileName = "File_Name.pdf";
var bytes = reportViewer.ServerReport.Render("PDF",null,out mimeType,out encoding,out filenameExtension,out streamids,out warnings);
var pdfReport = File(bytes,"application/pdf",outputFileName);

在这里做错了什么吗?

解决方法

您可以尝试以下几点:

  1. 尝试从您尝试访问报告的位置 ping 服务器,看看您是否可以访问它。如果您无法通过 ping 到达它。如果您无法 ping 通它,则可能是防火墙有问题。服务器上的 Ping 可能被禁用,因此请确保不是这种情况。事实上,如果您无法通过代码访问报表服务器,您将无法运行报表。
  2. 确保您用于 ReportServerUrl 的路径与安装报表服务器的计算机上的报表服务器配置管理器中配置的路径相同。
  3. 确保已安装证书。检查此链接:https://blog.jpries.com/2017/02/11/troubleshooting-error-404-error-400-or-invalid-request-or-bad-connection-in-a-new-ssrs-installation/
,

对于任何可能会遇到这种情况的人来说,这是一个愚蠢的错误。我一直在使用用于在网络上打开报告的 http://server/reports

您可能需要检查报表服务器配置管理器并确保使用指向配置的虚拟路径的 URL。因此,假设虚拟路径为 reportserver,您必须将其用作 ReportServerUrl 才能呈现报表。

reportViewer.ServerReport.ReportServerUrl = new Uri("http://server/reportserver");