Intermitant DefinitionInvalidException с окнами формы ReportViewer 2008 - PullRequest
0 голосов
/ 25 августа 2009

У меня есть RDL, использующий его в приложении (Windows Forms) .NET 2.0.

Когда пользователь щелкает в приложении, rdl перезагружается в средство просмотра отчетов. Для того же RDL я иногда получаю ошибку, иногда нет.

Когда я запускаю отладку моего приложения в Visual Studio, он никогда не получает ошибку. Сразу после запуска я запускаю exe из папки bin, и теперь я получаю ошибки (но только в 50% случаев обновление отчета)

Исключение возникает, когда я вызываю ReportViewer.RefreshReport

Я просматривал RDL в каждом месте, где есть minOccurs, и все они либо "0", либо "1".

Интересно, если я вызову Application.DoEvents () непосредственно перед вызовом RefreshReport, я могу, но количество времени, в течение которого ошибка происходит до 5% ... но все равно иногда случается!

Недопустимое определение отчета «Основной отчет». , Произошла непредвиденная ошибка при обработке отчета. , Значение для атрибута 'minOccurs' недопустимо - значение для атрибута 'minOccurs' должно быть xsd: nonNegativeInteger .. (DefinitionInvalidException) Трассировки стека: Microsoft.Reporting.DefinitionInvalidException: определение отчета «Основной отчет» недопустимо. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: непредвиденная ошибка при обработке отчета. ---> System.Xml.Schema.XmlSchemaException: значение атрибута 'minOccurs' недопустимо - значение для атрибута 'minOccurs' должно быть xsd: nonNegativeInteger .. в System.Xml.Schema.XmlSchema.Read (читатель XmlReader, ValidationEventHandler validationEventHandler) в System.Xml.Schema.XmlSchema.Read (Поток потока, ValidationEventHandler validationEventHandler) в Microsoft.ReportingServices.ReportProcessing.ReportPublishing.RmlValidatingReader..ctor (XmlTextReader textReader, PublishingErrorContext errorContext, String targetRDLNamespace) в Microsoft.ReportingServices.ReportProcessing.ReportPublishing.RmlValidatingReader.CreateReader (XmlTextReader upgradededRDLReader, PublishingErrorContext errorContext, String targetRDLNamespace) в Microsoft.ReportingServices.ReportProcessing.ReportPublishing.Phase1 (определение CatalogItemContext reportContext, определение Byte [], CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, строка, описание, строка, язык, ссылка на источник, ссылка на пользовательский источник, ссылка на источник на Microsoft.ReportingServices.ReportProcessing.ReportPublishing.CreateIntermediateFormat (CatalogItemContext reportContext, байт [] определение, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, PublishingErrorContext errorContext, AppDomain compilationTempAppDomain, Boolean, String generateExpressionHostWithRefusedPermissions & описание, строка & язык, ParameterInfoCollection и параметры, DataSourceInfoCollection & DataSources, UserLocationFlags & userReferenceLocation, ArrayList & dataSetsName, Boolean & hasExternalImages, Boolean & hasHyperlinks) на Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileReport (CatalogItemContext reportContext, Byte [] ReportDefinition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, PublishingErrorContext errorContext, AppDomain compilationTempAppDomain, Boolean, String generateExpressionHostWithRefusedPermissions & reportDescription, String & reportLanguage, ParameterInfoCollection & параметров, DataSourceInfoCollection & DataSources, UserLocationFlags & userReferenceLocation, ArrayList & dataSetsName, Boolean & hasExternalImages, Boolean & hasHyperlinks)по адресу Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat (CatalogItemContext reportContext, Byte [] reportDefinition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, компиляция AppDomainPhindWindows). --- Конец внутренней трассировки стека исключений --- по адресу Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat (CatalogItemContext reportContext, Byte [] reportDefinition, CreateReportChunk createChunkCallback, CheckSharedDataSource checkDataSourceCallback, компиляция AppDomainPhindWindows). в Microsoft.Reporting.ReportCompiler.CompileReport (контекст CatalogItemContext, Byte [] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase & snapshot) --- Конец внутренней трассировки стека исключений --- в Microsoft.Reporting.ReportCompiler.CompileReport (контекст CatalogItemContext, Byte [] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase & snapshot) в Microsoft.Reporting.StandalonePreviewStore.StoredReport.CompileReport () в Microsoft.Reporting.StandalonePreviewStore.StoredReport.get_Snapshot () в Microsoft.Reporting.StandalonePreviewStore.GetCompiledReport (контекст CatalogItemContext, логическое перестроение, ReportSnapshotBase & snapshot) в Microsoft.Reporting.LocalService.GetCompiledReport (CatalogItemContext itemContext, логическое перестроение, ReportSnapshotBase & snapshot) в Microsoft.Reporting.LocalService.CompileReport (CatalogItemContext itemContext, логическое перестроение) в Microsoft.Reporting.WinForms.LocalReport.CompileReport ()

1 Ответ

0 голосов
/ 11 сентября 2009

вместо

ReportViewer.RefreshReport

Это казалось исправлением.

Application.DoEvents()
ReportViewer.LocalReport.ExecuteReportInCurrentAppDomain(Reflection.Assembly.GetExecutingAssembly().Evidence)
...