我要使用以下代码将SSRS报告以PDF格式下载到文件夹中
Protected Sub BtnPDF_Click(sender As Object, e As EventArgs)
Try
Dim client As New WebClient()
client.Headers.Add("user-agent", "Document download")
client.UseDefaultCredentials = True
'client.DownloadFile("http://server-name1/ReportServer_REPORTSDB/Pages/ReportViewer.aspx?%2fReport_Folder%2fReportName&rs:Command=Render&ID=12421&DTE=0&rs:Format=PDF", "\\server-name1\SharedFolder\Test2.pdf")
'client.DownloadFile("http://server-name2/ReportServer_REPORTSDB/Pages/ReportViewer.aspx?%2fReport_Folder%2fReportName&rs:Command=Render&ID=12421&DTE=0&rs:Format=PDF", "\\server-name1\SharedFolder\Test2.pdf")
'client.DownloadFile("http://server-name2/NormalWebsite/Documents/UserGuide.pdf", "\\server-name1\SharedFolder\Test2.pdf")
Catch ex As Exception
txtComments.Text = ex.Message
End Try
End Sub
请注意已注释掉的行:在Visual Studio中运行代码并取消注释这三行中的任何一行时,代码将按预期工作,将PDF文件下载到该位置。
发布到IIS时,只有最后一行(仅指向本地站点的PDF文件)会将文件下载到该位置。如果我仅取消前两行之一的注释,则代码将落入catch块并在注释文本框中显示403错误
我想这是某种SSRS问题,因为这仅发生在SSRS URL上,但我不知道出了什么问题?
NB
http://server-name1/ReportServer_REPORTSDB是SSRS 2016服务器
http://server-name2/ReportServer_REPORTSDB是SSRS 2008R2服务器
这不是我的代码,但是文档建议该行
client.Headers.Add("user-agent", "Document download")
是为了防止500错误