6

はい、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)これを達成するためのより良い代替手段はありますか?

4

2 に答える 2

11

上記のコードを修正し、現在は機能しています

    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レポートをエクスポートするために、これ以外の方法は見つかりませんでした。

于 2013-07-25T07:21:06.177 に答える