在SSRS URL访问上有401个未经授权的错误…但它在Fiddler中有效吗?

我试图使用C#中的URL访问从SSRS报告生成pdf。 (在WebApi控制器后面的业务层中)我创建了一个HttpClient实例,分配了正确的凭据并形成了请求URL,如:

HTTP://sqlserver1/ReportServer/Pages/ReportViewer.aspx /客户/ Acme的/ AcmeActivitySummary&RS:命令=渲染和RS:格式= PDF&地区=西&CutOffDate = 10 /二千〇一十五分之二十五

如果我将我的URL放在浏览器中,它会下载预期的PDF文件。 当我从HttpClient实例执行此URL以返回流时,我收到401 Unauthorized Error。

如果我打开Fiddler看看为什么……它按预期工作。

如何在不使用Fiddler的情况下完成这项工作……为什么它现在不起作用?

在某些地方,微软改变了对SSRS的URL访问的“标准”。 URL模式“ http://{Server}/ReportServer/Pages/ReportViewer.aspx?/{Path to Report File} & [commands] & [parameters]

被弃用赞成

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

但是 ……旧的url模式仍然可以“ 有时 ”工作。 SSRS仍会在旧的“端点”接收请求,如果请求可以转发 ,它将会这样做。 因此,来自浏览器(或来自Fiddler)的“正常”请求似乎工作得很好。 问题在于HttpClient请求,SSRS不会转发到新端点……它只是返回[有点混乱] 401 Unauthorizedexception……这显然意味着“我无权转发此请求”而不是“您无权访问此资源“。

(失去了比我更愿意承认找到这个的更多时间……我认为这里的post对其他人有帮助。)