2011-11-29 23 views
0

我們擁有一個具有SQL Server報表服務從數據庫中的數據通過SSRS寫作與WriteAllBytes C#提交報告時,腐敗

ReportExecutionService.Render 

創建一個PDF文件的過程。然後我們保存Render返回到數據庫的字節數組。後來我得到字節數組,並做一個

File.WriteAllBytes 

將它寫入磁盤,然後將其附加到電子郵件併發送它。我遇到的問題是,在將文件寫入磁盤後,它以某種方式損壞。我不知道該看什麼,任何人都可以幫忙?

感謝

編輯:

我可以寫從SSRS到磁盤上的文件的字節數組保存到數據庫之前,我可以看到的罰款。

回答

0

如果你使用渲染返回的byte[],那麼事情是好的,但是如果你一旦把它寫到數據庫並讀回來,你有問題,對嗎?

爲什麼不比較寫入數據庫的數組與您檢索到的數組以找出問題?然後開始查看您的數據庫寫入和讀取例程,最後是您的數據庫存儲。

我已經做了類似的事情沒有問題,比如將Reporting Services調用的結果放入字節流中,並直接將其附加到電子郵件中,並使用內存流和磁盤文件。所以這個基礎是健全的,應該工作。

0

不確定這是否是您的問題,但如果PDF文件本身已損壞,則可能需要查看它是如何寫入的。如果Windows預覽可以查看PDF,但Adobe不能這樣做,則可能與Adobe在文件的前1024個字節中佔用%PDF(否則它會認爲已損壞)這一事實有關。