У меня есть следующий код, который я хочу использовать для загрузки отчета 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, поскольку это происходит только с URL-адресами SSRS, но я не могу понять, в чем проблема?
NB
http://server -name1 / ReportServer_REPORTSDB является сервером SSRS 2016
http://server -name2 / ReportServer_REPORTSDB является сервером SSRS 2008R2
Это не мой код, но в документации предлагается строка
client.Headers.Add("user-agent", "Document download")
для предотвращения ошибки 500