下载SSRS报告并保存在特定位置(C#)(未经授权)

2024-01-12

Question

我正在尝试通过其 URL 将 SSRS 报告下载到数据缓冲区(字节数组)中,因此我可以将其保存在特定的文件夹中,并使用我选择的名称。如果需要的话,我愿意接受不同方法的建议。

问题

但是我不断收到以下错误(401) 未经授权,无论我输入哪种凭据:

System.dll 中发生“System.Net.WebException”类型的异常 但未在用户代码中处理

附加信息:远程服务器返回错误:(401) 未经授权。

我正在使用这段代码(C#):

WebClient myWebClient = new WebClient();
NetworkCredential netCredential = new NetworkCredential("username", "password");
myWebClient.Credentials = netCredential;

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF"

byte[] myDataBuffer = myWebClient.DownloadData(theURL);

示例 URL(如果我只需将以下 URL 复制到浏览器中,就可以完美下载文件,不会出现任何访问​​问题):http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF

我的计算机位于域中,我已经尝试了这些凭据以及域以及数据库 SA 帐户,但两者都带来了相同的问题。

我知道这段代码在下载 PDF 文件时有效,因为我从互联网上硬编码了一个随机 URL,并且这有效,例如:“http://www.axmag.com/download/pdfurl-guide.pdf http://www.axmag.com/download/pdfurl-guide.pdf"

谢谢大家在这件事上的帮助,我希望这是可能的,因为这将是我的申请的一个非常方便的补充


事实证明,对于我的场景来说就这么简单(使用默认凭据):

var theURL = "http://ReportServer/ReportServer_MYSERVER/Pages/ReportViewer.aspx?%2fPurchaseOrder&rs:Command=Render&OrderID=100&rs:ClearSession=true&rs:Format=PDF";

WebClient Client = new WebClient();
Client.UseDefaultCredentials = true;

byte[] myDataBuffer = Client.DownloadData(theURL);

上面的代码允许将任何 SSRS 报告下载为字节数组。这意味着它可以保存在指定位置,并使用您选择的名称:

var filename = "Test.PDF";
var fileStructureLocal = "C:\\Test";
var fileStructureNetwork = "\\\\NetworkDrive\TestFolder";

var fileLocation = fileStructureNetwork + "\\" + filename;

 if (System.IO.File.Exists(url) == true)
        {
            //DO NOTHING
        }
 else
        {
            System.IO.File.WriteAllBytes(url, myDataBuffer);
            //SAVE FILE HERE
        }

下一个块是如何重命名文件并指定位置。我还添加了一个检查来查看它是否已经存在,如果存在,则什么也不做。

我希望这会有所帮助,因为这是我长期以来一直在努力工作的事情!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

下载SSRS报告并保存在特定位置(C#)(未经授权) 的相关文章

随机推荐