Exporting SSRS Report to PDF in MVC Action
Asked Answered
M

2

6

Yes , I want to Export SSRS Report to the PDF and Return it from my action, I do not have any Report Viewer.Please Suggest me how can i achieve this. so far i have done this

    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();
    }

Above code throws an exception

"The remote server returned an error: (401) Unauthorized."

My Questions are
1) Am i going in right direction?
2) Is There any Better Alternative to achieve this ?

Mozart answered 24/7, 2013 at 12:20 Comment(0)
M
11

I Corrected the Above Code and now its Working

    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");
    }

i do not found any other alternative than this to export SSRS Report in MVC without using ReportViewer.

Mozart answered 25/7, 2013 at 7:21 Comment(1)
How come I don't get a 401 by using an <iframe tag, the report displays correctly? But, when I use your code I get the 401? I'm using the user/pass that the datasource uses. Do I need to create new user/pass or use impersonation?Ettieettinger
B
1

try not specify the domain like this:

NetworkCredential nwc = new NetworkCredential("username", "password");
Brindisi answered 21/3, 2014 at 17:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.