我正在尝试使用C#中的URL访问从SSRS报告生成pdf。 (在WebApi控制器后面的业务层中)我创建了一个HttpClient实例,分配了正确的凭据并形成了请求URL,如:
如果我将我的URL放在浏览器中,它会下载预期的PDF文件。 当我从HttpClient实例执行此URL以返回流时,我收到401 Unauthorized Error。
如果我打开Fiddler看看为什么......它按预期工作。
如何在不使用Fiddler的情况下完成这项工作......为什么它现在不起作用?
答案 0 :(得分:2)
在某些地方,微软改变了对SSRS的URL访问的“标准”。网址格式“http://{Server}/ReportServer/Pages/ReportViewer.aspx?/{Path to Report File} & [commands] & [parameters]
已弃用赞成
http://{server}/reportserver?/{path} & [commands] & [parameters].
HOWEVER ...旧的网址格式仍有效“有时”。 SSRS仍将在旧的“端点”接收请求,如果请求可以转发,它将会这样做。因此,来自浏览器(或来自Fiddler)的“正常”请求似乎正常工作。问题在于HttpClient请求,SSRS不会转发到新端点......它只是返回[有点混乱] 401 Unauthorized异常...这显然意味着“我无权转发此请求”而不是“您无权访问此资源“。
(失去了比我更愿意承认这一点的时间......我认为这里的帖子对其他人有帮助。)