2008-12-04 112 views
0

我的應用程序(winforms.net 2.0/vs2008)在我的開發機器上正常工作,但是在一臺測試機器上,我收到了這個異常。 有沒有人遇到類似的東西?來自Microsoft Report Viewer 2008的DefinitionInvalidException

 
************** Exception Text ************** 
Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report 'Main Report' is invalid. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error. See the report server log files for more information. 
    at Microsoft.ReportingServices.Diagnostics.DataProtectionLocal.ProtectData(Byte[] data, Int32 dwFlags) 
    at Microsoft.ReportingServices.DataExtensions.DataSourceInfo..ctor(String originalName, String extension, String connectionString, Boolean originalConnectStringExpressionBased, Boolean integratedSecurity, String prompt) 
    at Microsoft.ReportingServices.ReportProcessing.ReportPublishing.ReadDataSource(DataSourceNameValidator dataSourceNames, PublishingContext context) 
    at Microsoft.ReportingServices.ReportProcessing.ReportPublishing.ReadDataSources(PublishingContext context) 
    at Microsoft.ReportingServices.ReportProcessing.ReportPublishing.ReadReport() 
    at Microsoft.ReportingServices.ReportProcessing.ReportPublishing.Phase1(CatalogItemContext reportContext, Byte[] definition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, String& description, String& language, DataSourceInfoCollection& dataSources, UserLocationFlags& userReferenceLocation, Boolean& hasExternalImages, Boolean& hasHyperlinks) 
    at Microsoft.ReportingServices.ReportProcessing.ReportPublishing.CreateIntermediateFormat(CatalogItemContext reportContext, Byte[] definition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, PublishingErrorContext errorContext, AppDomain compilationTempAppDomain, Boolean generateExpressionHostWithRefusedPermissions, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks) 
    at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileReport(CatalogItemContext reportContext, Byte[] reportDefinition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, PublishingErrorContext errorContext, AppDomain compilationTempAppDomain, Boolean generateExpressionHostWithRefusedPermissions, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks) 
    at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(CatalogItemContext reportContext, Byte[] reportDefinition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, AppDomain compilationTempAppDomain, Boolean generateExpressionHostWithRefusedPermissions) 
    at Microsoft.Reporting.ReportCompiler.CompileReport(CatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase& snapshot) 
    --- End of inner exception stack trace --- 
    at Microsoft.Reporting.ReportCompiler.CompileReport(CatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase& snapshot) 
    at Microsoft.Reporting.StandalonePreviewStore.StoredReport.CompileReport() 
    at Microsoft.Reporting.StandalonePreviewStore.StoredReport.get_Snapshot() 
    at Microsoft.Reporting.StandalonePreviewStore.GetCompiledReport(CatalogItemContext context, Boolean rebuild, ReportSnapshotBase& snapshot) 
    at Microsoft.Reporting.LocalService.GetCompiledReport(CatalogItemContext itemContext, Boolean rebuild, ReportSnapshotBase& snapshot) 
    at Microsoft.Reporting.LocalService.CompileReport(CatalogItemContext itemContext, Boolean rebuild) 
    at Microsoft.Reporting.WinForms.LocalReport.CompileReport() 
    --- End of inner exception stack trace --- 
    at Microsoft.Reporting.WinForms.LocalReport.CompileReport() 
    at Microsoft.Reporting.WinForms.LocalReport.SetParameters(IEnumerable`1 parameters) 
    at XXX.Helpers.Report.PrintFavs(List`1 list, String header, String filename) in C:\Data\projects\workdir_cpv\Src\Classes\Helpers\Report.cs:line 112 

回答

0

報告和報告查看器的vs2008設計器不向下兼容2.0。以同樣的方式,你不能用vs2008設計2005年報告 - 這可能是你的問題。

0

我曾經有過類似的事情。您可能想確保測試機器安裝了GAC中的ReportViewer dll。微軟已經創建了一個installer以使這更容易。

問題:您是否在本地模式下使用Reporting Services以及winforms內的報表查看器控件?

+0

不,我沒有使用報表查看器控件,因爲它沒有翻譯成我的客戶的語言。 我使用http://msdn.microsoft.com/en-us/library/ms252091.aspx – tomo 2008-12-05 08:56:25

0

我的安裝程序將所有需要的DLL

Microsoft.ReportViewer.Common.dll

Microsoft.ReportViewer.ProcessingObjectModel.dll

Microsoft.ReportViewer.Winforms.dll

到PROGRAMFILES/myAppname文件夾。

它在Vista/XP上運行完美,但問題出現在Win98上。 我會嘗試在GAC上安裝這些dll,也許這是一個問題。我試圖避免在我的安裝程序中運行額外的安裝程序。

@ keithwarren7:

,如果這是真的,那麼它是非常愚蠢的。你知道任何簡單的&免費的.net 2.0報告引擎嗎?

+1

解決方案直接打印到文件問題是2005年和2008年之間的RDL規範發生了變化,並引入了Tablix。這可能是可能的,但我沒有運氣。 – keithwarren7 2008-12-04 16:29:15