6

(C#、Web API、SQL Server2012 とレポート サーバーを使用、認証は NTLM)

SSRS からレポートを (Excel ドキュメントとして) ダウンロードしようとすると、断続的なエラーが発生します。次のようにレポートを表示する正しい URL を作成します。

http://sqlServer/ReportServer/Pages/ReportViewer.aspx?/TheReportName&rs:Command=Render&rs:format=excel&rc:Parameters=false&Region=WEST&CutOffDate=10/25/2015

WebClient webClient = new WebClient();
webClient.Credentials = new NetworkCredential("myDom\\myReportReader", "P@55W0rd");
     //string credentials = Convert.ToBase64String(
     //    Encoding.ASCII.GetBytes("myDom\\myReportReader" + ":" + P@55W0rd"));
     //webClient.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials);

//401 Unauthorized thrown here:
return new MemoryStream(webClient.DownloadData(reportUrl));

ここでの目標は、公開されている IIS 上の Web API コントローラーが、内部/ファイアウォールで保護された SSRS からファイル ストリームをダウンロードし、そのストリームをブラウザーに中継することです。これは時々機能します...そうでない場合は、最後の行に401エラーが返されます... 注釈付きの行は、機能しなかった問題を解決しようとする試みを表しています。

4

1 に答える 1