sql-server – 独立存储异常:无法确定域的标识
副标题[/!--empirenews.page--]
我在SQL Server 2012 SP1 Reporting Services实例中设置了一个订阅,该实例将34MB文件导出到Excel 2007-2013 XLSX OpenXML渲染扩展.订阅会引发以下错误: System.IO.IsolatedStorage.IsolatedStorageException:无法确定域的标识. 我确认可以将报表从Report Manager导出到Excel 2007-2013 XLSX OpenXML渲染扩展,没有任何问题.仅在通过订阅执行报表时才会出现此错误.我研究了这个并在网上找到了以下建议: >两个单独的Microsoft Connect错误报告764356和764556没有列出的解决方法. 以下是完整错误日志条目的副本: 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,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 assemblyEvidenceType) at System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope,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 count,Boolean isAsync) at System.IO.Compression.DeflateStream.Write(Byte[] array,Int32 count) at MS.Internal.IO.Packaging.CompressStream.Write(Byte[] buffer,Int32 count) at MS.Internal.IO.Zip.ProgressiveCrcCalculatingStream.Write(Byte[] buffer,Int32 count) at MS.Internal.IO.Zip.ZipIOModeEnforcingStream.Write(Byte[] buffer,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 解决方法你可以在这里找到解决方案: http://rekiwi.blogspot.com/2008/12/unable-to-determine-identity-of-domain.html在COM组件中,使用适当的证据创建一个新的AppDomain并执行该代码. 这是一个代码示例,为我解决了问题: AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory.ToString(); //Then we need our evidence System.Security.Policy.Evidence evidence = new System.Security.Policy.Evidence(); evidence.AddHost(new System.Security.Policy.Zone(System.Security.SecurityZone.MyComputer)); //Now we can fire up an AppDomain running with that evidence. AppDomain domain = AppDomain.CreateDomain("YourDll.YourClass",evidence,setup); YourDll.YourClass yourclass = (YourDll.YourClass)domain.CreateInstanceAndUnwrap(typeof(YourDll.YourClass).Assembly.FullName,typeof(YourDll.YourClass).FullName); yourclass.CallYourMethod(); (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |