我在SQL Server 2012 SP1 Reporting Services實例中設置了一個訂閱,該實例將34MB文件導出到Excel 2007-2013 XLSX OpenXML呈現擴展。訂閱引發以下錯誤:孤立存儲異常:無法確定域的標識
System.IO.IsolatedStorage.IsolatedStorageException:無法確定域的標識。
我驗證了可以將報表從報表管理器導出到Excel 2007-2013 XLSX OpenXML渲染擴展中,而不會出現問題。只有通過訂閱執行報告時纔會發生此錯誤。我研究這一點,並在網上找到了以下建議:
推薦交錯訂閱,以便一次只運行一個訂閱。這沒有幫助,因爲在發生錯誤時只有一個訂閱正在運行。
建議使用Excel 2003渲染方法並將行分成單獨的選項卡以避免65,536行限制。我確實證實了這一點,但從商業利益相關者的角度來看,這不是一個可以接受的解決方案。
表示任何使用Excel 2007-2013呈現方法的報表大小超過10 MB的報表將從內存中生成到使用獨立存儲。沒有解釋爲什麼這是壞的,我認爲這是有原因的 - 可能是爲了限制RAM的消耗。
建議爲ASP.NET應用程序的獨立存儲文件夾中的用戶提升權限。我無法找到隔離存儲文件夾位於Reporting Services的位置。
建議使用額外的代碼來繞過隔離存儲的ASP.NET代碼,從而繞過此問題。我無法找到將此解決方案應用於Reporting Services的方法,因爲這是Microsoft提供的產品。
建議修改報告管理器和報告服務器web.config文件以在httpRuntime節點中包含maxRequestLength =「200000」。這並沒有改變結果。
建議在RSReportServer.config中顯式增加內存設置。這似乎不會有幫助,因爲錯誤與孤立存儲有關,但是我嘗試了絕望。這並沒有改變結果。
建議將DatabaseQueryTimeout值從120更改爲更大。這並沒有改變結果。
建議更改訂閱執行超時值。這並沒有改變結果。
以下是完整的錯誤日誌條目的副本:
reportrendering!WindowsService_5!1628!04/03/2013-09:48:33:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: , Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: An error occurred during rendering of the report. ---> System.IO.IsolatedStorage.IsolatedStorageException: Unable to determine the identity of domain.
at System.IO.IsolatedStorage.IsolatedStorage._GetAccountingInfo(Evidence evidence, Type evidenceType, IsolatedStorageScope fAssmDomApp, Object& oNormalized)
at System.IO.IsolatedStorage.IsolatedStorage.GetAccountingInfo(Evidence evidence, Type evidenceType, IsolatedStorageScope fAssmDomApp, String& typeName, String& instanceName)
at System.IO.IsolatedStorage.IsolatedStorage._InitStore(IsolatedStorageScope scope, Evidence domainEv, Type domainEvidenceType, Evidence assemEv, Type assemblyEvidenceType, Evidence appEv, Type appEvidenceType)
at System.IO.IsolatedStorage.IsolatedStorage.InitStore(IsolatedStorageScope scope, Type domainEvidenceType, Type assemblyEvidenceType)
at System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope, Type domainEvidenceType, Type assemblyEvidenceType)
at MS.Internal.IO.Packaging.PackagingUtilities.ReliableIsolatedStorageFileFolder..ctor()
at MS.Internal.IO.Packaging.PackagingUtilities.GetDefaultIsolatedStorageFile()
at MS.Internal.IO.Packaging.PackagingUtilities.CreateUserScopedIsolatedStorageFileStreamWithRandomName(Int32 retryCount, String& fileName)
at MS.Internal.IO.Packaging.SparseMemoryStream.EnsureIsolatedStoreStream()
at MS.Internal.IO.Packaging.SparseMemoryStream.SwitchModeIfNecessary()
at MS.Internal.IO.Zip.ZipIOFileItemStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Compression.DeflateStream.InternalWrite(Byte[] array, Int32 offset, Int32 count, Boolean isAsync)
at System.IO.Compression.DeflateStream.Write(Byte[] array, Int32 offset, Int32 count)
at MS.Internal.IO.Packaging.CompressStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at MS.Internal.IO.Zip.ProgressiveCrcCalculatingStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at MS.Internal.IO.Zip.ZipIOModeEnforcingStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.XMLModel.XMLStreamsheetModel.WriteStreamToStream(Stream from, Stream to)
at Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.XMLModel.XMLStreamsheetModel.Cleanup()
at Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.OpenXmlGenerator.FinalizeWorksheet()
at Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.OpenXmlGenerator.NextWorksheet()
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection
不幸的是,看起來你已經找到了在Reporting Services的Excel渲染器中的錯誤或限制(但如果你可以通過生成報表管理器的報告,然後這聽起來像我的一個bug)。 34 MB是一個相當大的電子表格報告。這實際上是一個報告還是數據提取?它可以導出爲CSV而不是Excel格式?您可以使用SSIS將數據導出到電子表格嗎? – Nathan 2013-04-04 03:19:00
我更新了Connect bugs以包含來自此問題的信息。我通過在SSIS包腳本任務中通過ReportServer URL重新發送報告來解決此錯誤。 – 2013-04-05 00:07:34