2017-06-05 53 views
0

我有一個SSRS報告(SSRS 2012),當我嘗試導出到Excel時,一分鐘左右發生500次服務器錯誤後總是崩潰。SSRS導出到Excel結果(500)服務器錯誤

報告本身成功運行。而且我可以成功地將結果導出爲CSV,在報告本身渲染後實際只需要幾秒鐘的時間。

我在遇到大於20000條記錄的結果集時遇到此問題;我目前的例子有36000條記錄 - 它導致Excel導出崩潰,但CSV導出成功。

我試過檢查SSRS日誌(C:\Program Files\Microsoft SQL Server\MSRS11.SQL2012\Reporting Services\LogFiles)沒有錯誤顯示在那裏,只有幾個條目RenderForNewSessionRenderFromSession指向我的報告。

事件查看器應用程序日誌顯示了ASP.NET 2.0警告條目:

Exception information: Exception type: COMException Exception message: This network connection does not exist. (Exception from HRESULT: 0x800708CA)

還有其它任何地方,我會覺得非常有用的調試信息?如果我不需要,我真的不必指示客戶端「不要將大型報告導出到Excel中,而是使用CSV」。或者當從SSRS網絡報告查看器導出到Excel時,是否有任何已知問題或怪癖?

編輯:

一些進一步的挖掘後,我發現一些更多的信息,但還沒有找到一個實際的解決方案。我確實找到了可以在日誌中調出調試級別的位置 - 在ReportingSErvicesService.exe.config文件中,有兩個設置,DefaultTraceSwitchComponents,位於RSTrace標記下方。它們的默認值爲3,但是每個碰撞到4都提供了看起來很詳細的日誌記錄輸出。

這很有意思,但並沒有真正指出我除了確認它看起來像客戶端執行超時之外的任何新東西。

接下來我遇到了一個TechNet article that at least seems to describe the various places I might be able to set an SSRS timeout。從我可以告訴它,似乎Excel導出渲染器正在執行某個地方的執行超時,但所有SSRS設置似乎涵蓋了足夠的空間來運行任何東西。

如果web.config httpRuntimeexecutionTimeout設置覆蓋machine.config設置? TechNet文章暗示,machine.config設置似乎與導出時看到的超時一致,但ReportServer web.config的executionTimeout設置比ASP.NET默認設置大得多。

回答

0

對你的一個想法是數據的輸出有一些Excel無法處理但csv可以。因此,數據中的換行符或這些行中的內容。

如果將結果限制爲只返回1行,會發生什麼情況?沒有行返回?它會輸出Excel嗎?

此外,我從SSRS知道你可以輸出數據到新的標籤,你是否使用該功能,並可能用完標籤?

Reporting Services export to Excel with Multiple Worksheets

+0

感謝您的提示。它沒有對標籤做任何有趣的事情,它只是一個直接的數據轉儲。關於壞數據的有趣想法 - 我會看看是否可以限制一些行。它看起來好像與數據量有關 - 它發生在多個不同的報告上,大約在20k行左右。 –

0

不知道這是否是同樣的問題,但我已經受夠了出口到Excel中有一個單元的字符太多麻煩。如果只遇到1個具有超過32745個字符的單元格,則整個導出會崩潰。

我不得不開始在我的文本框中添加截斷代碼來截斷導出到Excel的單元格文本,併爲我解決了這個問題 - 雖然並不總是一個可行的選項,但只是一個建議。

IIf(Globals!RenderFormat.Name= "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", 
      Left(Join(Fields!FieldA.Value, chr(10)),32745) + "...Truncated for Excel", 
Join(Fields!FieldA.Value, chr(10))) 

否則,這裏的顯示部分出口到Excel的侷限性,從報表服務的鏈接:https://docs.microsoft.com/en-us/sql/reporting-services/report-builder/exporting-to-microsoft-excel-report-builder-and-ssrs

+0

從我的分析來看,這不應該是我的數據集的問題。它似乎是腳本運行時的產物。我用更多的調試信息更新了我的問題。 –

0

的想法糅合在一起,但這往往是在SSRS 2008 R2

作爲一個問題對於SSRS2012 - 有兩種excel導出格式

Version of SSRS  Render format name to use 
2008 R2    EXCEL 
2012     EXCELOPENXML 

是否有可能打開2008r2版本? (其具有65K行限制)。如果是這樣,你可以關閉服務器上ssrs配置中的這個選項(但會關閉所有報告)

對於36K行,即使在EXCEL(2008r2)導出中也不應該存在此問題,但有沒有可能爲每個結果輸出2行?

+0

發生異常的調用實際上是調用'EXCELOPENXML'格式,所以我應該對行數進行優化。我已經用我發現的更多信息更新了這個問題。 –