(C#、Web API、SQL Server2012 とレポート サーバーを使用、認証は NTLM)
SSRS からレポートを (Excel ドキュメントとして) ダウンロードしようとすると、断続的なエラーが発生します。次のようにレポートを表示する正しい URL を作成します。
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エラーが返されます... 注釈付きの行は、機能しなかった問題を解決しようとする試みを表しています。