是的,我想将SSRS报告导出到PDF并从我的操作中返回,我没有任何报告查看器。请告诉我如何实现这一目标。到目前为止我已经完成了这个
public void SqlServerReport()
{
NetworkCredential nwc = new NetworkCredential("username", "password", "domain");
WebClient client = new WebClient();
client.Credentials = nwc;
string reportURL = "http://servername/ReportServer/reportfolder/StateReport&rs:Command=Render&rs:Format=PDF";
Byte[] pageData = client.DownloadData(reportURL);
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now);
Response.BinaryWrite(pageData);
Response.Flush();
Response.End();
}
上面的代码抛出异常
"The remote server returned an error: (401) Unauthorized."
我的问题是 1)我正朝着正确的方向前进吗? 2)有没有更好的替代方案来实现这一目标?
答案 0 :(得分:8)
我更正了上述代码,现在更正了
public ActionResult GetPdfReport()
{
NetworkCredential nwc = new NetworkCredential("username", "password");
WebClient client = new WebClient();
client.Credentials = nwc;
string reportURL = "http://someIp/ReportServer/?%2fReportProjectName/ReportName&rs:Command=Render&rs:Format=PDF";
return File(client.DownloadData(reportURL), "application/pdf");
}
我没有找到任何其他替代方法来在不使用ReportViewer的情况下在MVC中导出SSRS报告。
答案 1 :(得分:1)
尽量不要像这样指定域名:
NetworkCredential nwc = new NetworkCredential("username", "password");