我第一次使用 MVVM 中 ERP 中的 RDLC 报告的报告查看器工作。事实是,我的团队中除了一个人之外,没有人在本地工作以生成报告。在我的机器上运行你的代码对我来说很好,而我的不行。我查看了所有比较它们的项目文件,我没有看到任何差异,但肯定有一些差异。Microsoft.Sqlserver.Types
和参考的版本Microsoft.Reportviewer
是一样的。而且我的伴侣没有我没有的参考资料。代码是相同的,因为我们使用版本控制。唯一的区别可能是一个新的控制器或一个与正在进行的开发相对应的新模型,但我没有检测到其他任何东西。
当我去读取本地报告的参数时,异常在这一行跳转:
ReportParameterInfoCollection pInfo = reportViewer.LocalReport.GetParameters();
异常消息是Se ha producido un error durante el procesamiento local de informes.
内部异常是:
信息:
La definición del informe '' no es válida.
堆栈跟踪:
en Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.CompileReport()
en Microsoft.Reporting.LocalService.Microsoft.Reporting.ILocalProcessingHost.CompileReport()
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
资源:
Microsoft.ReportViewer.Common
资源:
Microsoft.ReportViewer.WebForms
堆栈跟踪:
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
en Microsoft.Reporting.WebForms.LocalReport.GetParameters()
en WimbiV2App.Helpers.ReportGenerator.setParametersToLocalReport(ReportConfiguration conf, ReportViewer reportViewer) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 954
en WimbiV2App.Helpers.ReportGenerator.GetReportViewerLocalProcessing(ReportConfiguration conf, ReportViewer reportViewer, Stream transformedTemplateStream) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 594
en WimbiV2App.Helpers.ReportGenerator.GenerateApplicationReport(ReportConfiguration conf) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 558
en WimbiV2App.Helpers.ReportGenerator.GenerateReportFromReportDefinition(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 173
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 120
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(List`1 configurations, Boolean PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs: línea 62
en WimbiV2App.Controllers.DirectCustomerController.PrintInvoiceReports(Nullable`1 companyID, String factMode, Nullable`1 reportType, List`1 reportsSelected, List`1 invoiceToPrint, Nullable`1 visualized) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Controllers\DirectCustomerController.cs: línea 7040
调试有效的代码和无效的代码,我在错误之前发现的唯一区别是,在有效的项目中,LocalReport 将 HasExecutionSession 设置为 true,而无效的代码将其设置为 false。设置为 true 的时刻在函数中//Carga el fichero modificado reportViewer.LocalReport.LoadReportDefinition(transformedTemplateStream);
。从那里,如果你想检查 localReport 对象,你会收到这样的消息:
我不知道这些信息是否有帮助
提前致谢。
整个异常堆栈:
System.Exception: Microsoft.Reporting.WebForms.LocalProcessingException: Se ha producido un error durante el procesamiento local de informes. ---> Microsoft.Reporting.DefinitionInvalidException: La definición del informe '' no es válida. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Error inesperado al procesar los informes. ---> System.IO.FileNotFoundException: No se puede cargar el archivo o ensamblado 'Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(Object obj, Boolean verify, Boolean assertOnInvalidType)
en Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Serialize(IntermediateFormatWriter writer)
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(IPersistable persistableObj, Boolean verify)
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.WriteVariantOrPersistable(Object obj)
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateHashForCachedDataSets()
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateIntermediateFormat(Byte[] definition, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
en Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.CompileReport()
en Microsoft.Reporting.LocalService.Microsoft.Reporting.ILocalProcessingHost.CompileReport()
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
en Microsoft.Reporting.WebForms.LocalReport.GetParameters()
en WimbiV2App.Helpers.ReportGenerator.setParametersToLocalReport(ReportConfiguration conf, ReportViewer reportViewer) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 954
en WimbiV2App.Helpers.ReportGenerator.GetReportViewerLocalProcessing(ReportConfiguration conf, ReportViewer reportViewer, Stream transformedTemplateStream) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 594
en WimbiV2App.Helpers.ReportGenerator.GenerateApplicationReport(ReportConfiguration conf) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 558
en WimbiV2App.Helpers.ReportGenerator.GenerateReportFromReportDefinition(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 173
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 120
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(List`1 configurations, Boolean PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 62
en WimbiV2App.Controllers.DirectCustomerController.PrintInvoiceReports(Nullable`1 companyID, String factMode, Nullable`1 reportType, List`1 reportsSelected, List`1 invoiceToPrint, Nullable`1 visualized) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Controllers\DirectCustomerController.cs:línea 7040 ---> Microsoft.Reporting.WebForms.LocalProcessingException: Se ha producido un error durante el procesamiento local de informes. ---> Microsoft.Reporting.DefinitionInvalidException: La definición del informe '' no es válida. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Error inesperado al procesar los informes. ---> System.IO.FileNotFoundException: No se puede cargar el archivo o ensamblado 'Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(Object obj, Boolean verify, Boolean assertOnInvalidType)
en Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Serialize(IntermediateFormatWriter writer)
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(IPersistable persistableObj, Boolean verify)
en Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.WriteVariantOrPersistable(Object obj)
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateHashForCachedDataSets()
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateIntermediateFormat(Byte[] definition, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
en Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
en Microsoft.Reporting.LocalService.CompileReport()
en Microsoft.Reporting.LocalService.Microsoft.Reporting.ILocalProcessingHost.CompileReport()
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
--- Fin del seguimiento de la pila de la excepción interna ---
en Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
en Microsoft.Reporting.WebForms.LocalReport.GetParameters()
en WimbiV2App.Helpers.ReportGenerator.setParametersToLocalReport(ReportConfiguration conf, ReportViewer reportViewer) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 954
en WimbiV2App.Helpers.ReportGenerator.GetReportViewerLocalProcessing(ReportConfiguration conf, ReportViewer reportViewer, Stream transformedTemplateStream) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 594
en WimbiV2App.Helpers.ReportGenerator.GenerateApplicationReport(ReportConfiguration conf) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 558
en WimbiV2App.Helpers.ReportGenerator.GenerateReportFromReportDefinition(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 173
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(ReportConfiguration conf, Document doc, PdfWriter PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 120
en WimbiV2App.Helpers.ReportGenerator.GenerateReport(List`1 configurations, Boolean PDFUnico) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Helpers\ReportGenerator.cs:línea 62
en WimbiV2App.Controllers.DirectCustomerController.PrintInvoiceReports(Nullable`1 companyID, String factMode, Nullable`1 reportType, List`1 reportsSelected, List`1 invoiceToPrint, Nullable`1 visualized) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Controllers\DirectCustomerController.cs:línea 7040
--- Fin del seguimiento de la pila de la excepción interna ---
en WimbiV2App.Controllers.DirectCustomerController.PrintInvoiceReports(Nullable`1 companyID, String factMode, Nullable`1 reportType, List`1 reportsSelected, List`1 invoiceToPrint, Nullable`1 visualized) en C:\Users\pandres\Desktop\Atlas\pas2 - copia (2)\DEV-3-WimbiV2App\WimbiV2App\Controllers\DirectCustomerController.cs:línea 7069
我已经设法解决了这个问题。在其中一个解决方案项目中缺少 dll
Microsoft.SqlServer.Types