C# SSRS在使用WriteAllBytes C写入文件时报告损坏#

C# SSRS在使用WriteAllBytes C写入文件时报告损坏#,c#,pdf,reporting-services,corrupt,C#,Pdf,Reporting Services,Corrupt,我们有一个让SQL Server Reporting Services通过创建pdf文件的流程 ReportExecutionService.Render 从数据库中的数据。然后我们保存渲染返回到数据库的字节数组。稍后,我得到字节数组并执行 File.WriteAllBytes 在将其附加到电子邮件并发送之前将其写入磁盘。我遇到的问题是,在将文件写入磁盘后,它不知何故已损坏。我不知道该看什么,有人能帮忙吗 谢谢 编辑: 在将字节数组保存到数据库之前,我可以将文件从SSRS写入磁盘,我可以查

我们有一个让SQL Server Reporting Services通过创建pdf文件的流程

ReportExecutionService.Render 
从数据库中的数据。然后我们保存渲染返回到数据库的字节数组。稍后,我得到字节数组并执行

File.WriteAllBytes
在将其附加到电子邮件并发送之前将其写入磁盘。我遇到的问题是,在将文件写入磁盘后,它不知何故已损坏。我不知道该看什么,有人能帮忙吗

谢谢

编辑:


在将字节数组保存到数据库之前,我可以将文件从SSRS写入磁盘,我可以查看它。如果使用render返回的
字节[]
,则一切正常,但如果将其写入数据库并读回,则会出现问题,对吗

为什么不将写入数据库的数组与检索到的数组进行比较以找出问题?然后开始查看数据库写入和读取例程,最后查看数据库存储


我做过类似的事情,没有遇到任何问题,比如将Reporting Services调用的结果放入ByTestStream并直接附加到电子邮件中,这两种方法都使用memorystream和磁盘文件。因此,这方面的基本知识是可靠的,应该可以使用。

不确定这是否是您的问题,但如果PDF文件本身已损坏,您可能希望了解它是如何编写的。如果Windows预览可以查看PDF,但Adobe不能,它可能与Adobe在文件的前1024个字节中期待%PDF(否则它会认为它损坏)的事实有关。