使用ReportProcessor类打印Telerik报告

本文关键字:Telerik 报告 打印 ReportProcessor 使用 | 更新日期: 2023-09-27 18:01:33

首先让我来描述一下我的设置。

我有一个REST teleerik Reporting服务。该服务使用TRDX文件操作(要求使用此模板格式的报告)。我还有一个控制台应用程序,它由windows服务定期启动。这个控制台应用程序使用ReportProcessor类将报告直接打印到打印机。

现在问题来了。

当试图使用UriReportSource访问报告时,当这些报告文件与REST报告服务一起托管在IIS中时,

ReportProcessor会抛出异常。在IIS上为"报告"文件夹启用了浏览和匿名身份验证。抛出的错误是:

远程服务器返回一个错误:(404)not found.

但是,当TRDX文件位于与控制台应用程序相同的文件夹中时,报告将被打印。

使用ReportProcessor类打印Telerik报告

通过反复试验解决了我自己的问题。

我的报告位于REST服务的子目录中。所以我试图将Uri设置为报告的URL像这样:
UriReportSource reportSource = new UriReportSource { 
    Uri = "http://localhost/myTelerikRESTService/Reports/samplereport.trdx" 
};

我显然得到了404错误,因为对该路径的请求将由服务处理。

尝试指定物理路径(c:'inetpub'wwwroot'myTelerikService'Reports'samplereport.trdx)也以错误结束:类似the path format is not supported

最后我尝试了这个Uri: /inetpub/wwwroot/myTelerikService/Reports/samplereport.trdx,映射到物理位置。

它成功了!

编辑:

在处理这个问题之前,我真的应该先看看这个https://www.w3.org/Addressing/URL/uri-spec.html。显然,我对什么是URI没有明确的理解!现在感觉好傻.....