401 SSRS URL 访问时出现未经授权的错误.但它在提琴手身上有效

本文关键字:错误 提琴手 有效 授权 访问 URL SSRS | 更新日期: 2023-09-27 18:34:44

我正在尝试使用 C# 中的 URL Access 从 SSRS 报告生成 pdf。(在 WebAPI 控制器后面的业务层中(我创建 HttpClient 的实例,分配正确的凭据并形成请求 URL,如下所示:

http://sqlserver1/ReportServer/Pages/ReportViewer.aspx?/Clients/Acme/AcmeActivitySummary&rs:Command=Render&rs:format=pdf&Region=west&CutOffDate=10/25/2015

如果我将我的 URL 放在浏览器中,它会下载预期的 PDF 文件。当我从 HttpClient 实例执行此 URL 以返回流时,出现 401 未授权错误。

如果我打开小提琴手看看为什么...它按预期工作。

如何在不使用提琴手的情况下完成这项工作......为什么现在不起作用?

401 SSRS URL 访问时出现未经授权的错误.但它在提琴手身上有效

在某行Microsoft更改了 URL 访问 SSRS 的"标准"。网址模式" http://{Server}/ReportServer/Pages/ReportViewer.aspx?/{Path to Report File} & [commands] & [parameters]

已弃用,取而代之的是

http://{server}/reportserver?/{path} & [commands] & [parameters].

不过...旧的 URL 模式">有时"仍然有效。SSRS 仍将在旧的"终结点"接收请求,如果可以转发请求,它将这样做。因此,来自浏览器(或来自 Fiddler(的"正常"请求似乎工作正常。问题出在 HttpClient 请求上,SSRS 不会将其转发到新的终结点...它只是返回 [有点令人困惑] 401 未经授权的异常...这显然意味着"我无权转发此请求"而不是"您无权访问此资源"。

(在浪费了比我愿意承认发现这个更多的时间之后......我认为这里的帖子会对其他人有所帮助。