(使用 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 错误...注释掉的行表示尝试解决不起作用的问题。