I get the following error in my reportviewer report when I upgraded from Visual Studio 2015 Community to Visual Studio 2017 Community.
Microsoft.Reporting.WinForms.LocalProcessingException: ‘An error occurred during local report processing.’
Inner Exception
DefinitionInvalidException: The definition of the report » is invalid.
asked May 9, 2017 at 12:05
2
answered May 10, 2017 at 6:11
2
this error occurred for not installing correct packages. I have solved this problem by installing latest reportviewer control from this link
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WebForms/150.900.148
answered Feb 12, 2019 at 13:09
AlamgirAlamgir
6868 silver badges15 bronze badges
I’m going to add that my cause was that the report definition was indeed invalid.
It had syntax errors in some of the expressions.
fixed the rdlc file and the error disappeared, bit of a red herring but ill add this answer for anyone else still suffering the pain of working with microsoft reporting 2005 in 2021
answered Nov 26, 2021 at 16:08
user2983931user2983931
3045 silver badges17 bronze badges
For me, it was installed but I forgot this:
Hope it helps.
answered Apr 11, 2018 at 17:20
Спокойно доделывал отчет через reportviewer. Нужно было вставить пару параметров. Но как только начинаю их добавлять — отчет крашится насовсем.
Пишет, мол, определение данного отчета является недопустимым или не поддерживается данной версией служб Reporting Services. Определение отчета имеет неверное целевое пространство имен, не подлежащее обновлению (и показывает ссылку подключения xmlns).
Добавлено через 51 минуту
Новая информация: я проверил влияние параметров на отчет и увидел, что при первом же создании параметра структура отчета меняется, xmlns изменяется с 2008 на 2016 версию, и в структуру внедряются теги типа «ReportSections».
Таким образом, ни 2016 версию, ни «ReportSections» (если менять на 2008) отчет не видит.
Каким образом использовать в отчете параметры, если они меняют структуру отчета на слишком новую, которая не читается?
У меня есть приложение VB, которое будет использовать .rdl для создания отчетов в формате PDF с помощью Microsoft.ReportViewer.WinForms.
Существуют функции, которые мы позволяем приложению запускать без отображения какого-либо пользовательского интерфейса для создания определенных отчетов на основе настроек в базе данных. И мы используем планировщик задач для ежедневного запуска приложения утром для создания некоторых ежедневных отчетов.
У нас есть несколько клиентов, использующих одно и то же приложение с одинаковыми отчетами rdl. Но один из клиентов продолжает получать проблему, когда планировщик задач запускает приложение, в то время как другие работают нормально.
Приложение в основном генерирует 11 отчетов каждый день по утрам, но 1 из отчетов продолжает выдавать исключение всякий раз, когда планировщик задач запускает его утром.
Microsoft.Reporting.WinForms.LocalProcessingException: при обработке локального отчета произошла ошибка. Microsoft.Reporting.DefinitionInvalidException: определение отчета «xxx.rdl» недопустимо.
Но когда мы не смогли воспроизвести проблему, когда мы запускаем планировщик задач или запускаем программу вручную после этого.
Полный стек ошибок:
Error Message : Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report 'D:\EASI\AutoReport\SSRSReport\Report\1tic_movie_tax_report.rdl' is invalid. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> System.Runtime.InteropServices.COMException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed)
at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext()
at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext()
at System.Configuration.ClientConfigPaths.GetEvidenceInfo(AppDomain appDomain, String exePath, String& typeName)
at System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix(AppDomain appDomain, String exePath)
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Xml.Schema.Parser..ctor(SchemaType schemaType, XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
at System.Xml.Schema.XmlSchema.Read(XmlReader reader, ValidationEventHandler validationEventHandler)
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeSerializerSettings2005.CreateReaderSettings()
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeImpl2005.CreateReaderSettings()
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeFrom200501(XmlReader xmlReader, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeUnified(Stream stream, XmlReader xmlReader, String namespaceURI, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.Upgrade(Stream stream, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.UpgradeToCurrent(Stream stream, Boolean throwUpgradeException, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportPublishing.RdlObjectModelUpgradeStrategy.Upgrade(Stream definitionStream)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase1(Stream definitionStream, String& description, String& language, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, Boolean& hasExternalImages, Boolean& hasHyperlinks)
at 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)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, IDataProtection dataProtection, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
--- End of inner exception stack trace ---
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.CompileReport()
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
--- End of inner exception stack trace ---
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.LocalReport.GetParameters()
at SSRSReport.frmSsrsReport.SetReportParameter(String ReportTitle)
at SSRSReport.frmSsrsReport.ViewReport(Boolean showSplash)
at SSRSReport.frmMain.GenerateAutoReports(DateTime selectedDate)
Код:
1. rptViewer.LocalReport.ReportPath = fileName : executed on function [SSRSReport.frmSsrsReport.ViewReport]
2. rptViewer.LocalReport.GetParameters() : executed on function [SSRSReport.frmSsrsReport.SetReportParameter]
I have a report form «Form1ReportSale». On it’s load event I want to generate RDLC report on the basis of an ID which comes from another form. When I put my program in debug mode, DataSet returns expected value but throws an error.
Please find an attachment
My «Form1ReortSale» load event code is following:
public partial class Form1ReportSale : Form
{
string CS;
private string id;
public string UserID
{
get { return id; }
set { id = value; }
}
public Form1ReportSale()
{
InitializeComponent();
CS = ConfigurationManager.ConnectionStrings["BikeDB"].ConnectionString;
}
private void Form1ReportSale_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
//DataSet1NewCustomerBike dsCustomers = GetData(id);
reportViewer1.ProcessingMode = ProcessingMode.Local;
reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
DataSet ds = new DataSet();
ds = getDataByID(Convert.ToInt32(id));
ReportDataSource datasource = new ReportDataSource("DataSet1Customer",ds.Tables[0]);
this.reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(datasource);
reportViewer1.LocalReport.Refresh();
reportViewer1.RefreshReport();
}
private DataSet getDataByID(int ID)
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("SELECT * FROM AddNewBike WHERE ID = '"+ID+"'", con);
SqlDataAdapter ad = new SqlDataAdapter(cmd);
con.Open();
ad.Fill(ds);
}
return ds;
}
}
Adarsh Ravi
8931 gold badge16 silver badges38 bronze badges
asked Apr 26, 2017 at 6:38
Check out the path that you have given:
reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
Form1ReportSale report extension should be .rdlc instead of .cs … Copy the proper name which you have given to your report… or try this one
reportViewer1.LocalReport.ReportPath = "~/Reports/Form1ReportSale.rdlc";
answered Apr 26, 2017 at 6:46
3
I have a report form «Form1ReportSale». On it’s load event I want to generate RDLC report on the basis of an ID which comes from another form. When I put my program in debug mode, DataSet returns expected value but throws an error.
Please find an attachment
My «Form1ReortSale» load event code is following:
public partial class Form1ReportSale : Form
{
string CS;
private string id;
public string UserID
{
get { return id; }
set { id = value; }
}
public Form1ReportSale()
{
InitializeComponent();
CS = ConfigurationManager.ConnectionStrings["BikeDB"].ConnectionString;
}
private void Form1ReportSale_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
//DataSet1NewCustomerBike dsCustomers = GetData(id);
reportViewer1.ProcessingMode = ProcessingMode.Local;
reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
DataSet ds = new DataSet();
ds = getDataByID(Convert.ToInt32(id));
ReportDataSource datasource = new ReportDataSource("DataSet1Customer",ds.Tables[0]);
this.reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(datasource);
reportViewer1.LocalReport.Refresh();
reportViewer1.RefreshReport();
}
private DataSet getDataByID(int ID)
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("SELECT * FROM AddNewBike WHERE ID = '"+ID+"'", con);
SqlDataAdapter ad = new SqlDataAdapter(cmd);
con.Open();
ad.Fill(ds);
}
return ds;
}
}
Adarsh Ravi
8931 gold badge16 silver badges38 bronze badges
asked Apr 26, 2017 at 6:38
Check out the path that you have given:
reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
Form1ReportSale report extension should be .rdlc instead of .cs … Copy the proper name which you have given to your report… or try this one
reportViewer1.LocalReport.ReportPath = "~/Reports/Form1ReportSale.rdlc";
answered Apr 26, 2017 at 6:46
3
как я могу решить приведенное ниже Сообщение об ошибке, которое я получаю, когда пытаюсь развернуть свой отчет на наш Reporting Server
С помощью BIDS
?
сообщение:
ошибка: определение отчета «/OrderAnalysis » является недопустимым.
Элемент Отчета:
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
10 ответов
Я только что получил это неясное сообщение при попытке развернуть отчет из BIDS.
после небольшой охоты я нашел более описательную ошибку, войдя в окно предварительного просмотра.
Я нашел проблему в этом… из-за неправильной / неудачной ссылки.rdl к данным conns etc. Также выяснилось, что ставки не были довольны наличием пробелов в некоторых именах файлов проекта/отчета… поэтому любой, кто сталкивается с этой проблемой, убедитесь, что у вас нет пробелов в именовании и проверьте файлы rdl, соединения, все для неудачных/устаревших ссылок! Visual Studio кажется дерьмом при сохранении всех его ссылок в актуальном состоянии… не дай бог тебе что-нибудь переименовать!
Я просто изменил капитализацию одного символа в одном из параметров отчета и больше не мог развернуть. Изменение одного символа обратно в верхний регистр позволило мне повторно развернуть.
Замечательный.
У меня была такая же проблема во время разработки SSRS пользовательского отчета для MS CRM Dynamics 2011.
причина, потому что это произошло потому, что я использую некоторые Скрытых Параметров и для некоторых из них Я забыл дать значение по умолчанию.
Итак, из-за того, что у меня мало времени, чтобы закончить отчет, я забыл поставить значение по умолчанию для некоторых параметров, и я рисковал потерять больше времени, чтобы исправить это.
к счастью, я нашел его очень быстро, потому что ошибка показывает текстовое поле и абзац с первым неправильным параметром, но не показывает имя параметра:
«Я не могу опубликовать изображение ошибки, потому что этот сайт не позволяет мне»
вообще во время развития ССРС очень важно помнить:
— Поставить параметры отчета в правильную последовательность (указанные для первых Эс. параметры, унаследованные от основного отчета или параметров essentials for суб-наборы)
— Присвоить значение по умолчанию скрытию и внутренним параметрам.
очень загадочное сообщение для моей проблемы.
Я изменил имена параметров, но не обновлять эти имена в наборе данных.
Это произошло для меня из-за изменения имен определенных полей набора данных в заявках, на которые ссылались параметры. Я забыл зайти в параметры и изменить значение по умолчанию (значение по умолчанию параметра не меняется автоматически на переименование полей набора данных. Вместо.
Я только что столкнулся с этой проблемой. Есть опция «обновить поля», которую я нашел полезной. Сначала я не нашел интуитивным, что нужно вводить значения, используемые для выполнения запроса, таким образом, чтобы обновить поля. Как только я понял это и обновил поля — все сработало. Наборы данных и вызываемый общий набор данных должны коррелировать.
определение отчета недопустимо или не поддерживается данной версией служб Reporting Services. Это может быть результатом публикации определения отчета более поздней версии служб Reporting Services или того, что определение отчета содержит неправильно сформированный XML-код или недопустимый XML-код на основе схемы определения отчета.
я получил эту ошибку, когда я использовал ReportSync для загрузки некоторых .файлы rdl для служб отчетов SQL Server. В моем случае проблема заключалась в том, что .rdl-файлы имели текстовое поле, содержащее такие символы, как ©
, —
(прочерк), –
(тире) знаков и т. д. При загрузке .rdl файлы с помощью ReportSync, я должен был кодировать эти символы (©
, —
, –
, etc.) и используйте свойства-заполнители для установки типа разметки в HTML, чтобы избавиться от этой ошибки.
Я бы не получил эту ошибку, если бы я вручную загрузил каждый из них .файлы rdl один за другим с помощью служб SQL Server Reporting Services. Но у меня их много .rdl файлы и загрузка каждого из них по отдельности потребуют много времени, поэтому я использую ReportSync для массовой загрузки всех .RDL-файл.
Извините, если мой ответ не кажется актуальным, но я надеюсь, что это поможет кому-либо еще получить это сообщение об ошибке при работе с SSRS .RDL-файл.
Я получал эту ошибку и пробовал большинство предложений здесь. Наконец я произнес:»очистить » на проекте отчета и попробовал еще раз. Наконец-то сработало!!
Я получил эту ошибку в отчете, который я скопировал из другого проекта и изменил источник данных. Я решил это, открыв свойства моего набора данных, перейдя в раздел Параметры и буквально просто повторно выбрав все параметры в правом столбце, как будто я просто щелкнул раскрывающийся список и выбрал тот же столбец. Затем я нажал preview, и это сработало!
Проблема
Отчет, созданный с ReportTemplateAuthoringUtility (
» C: Program Files Autodesk Vault Professional 2016 Explorer ReportTemplateAuthoringUtility.exe «)
не работает и появляется сообщение об ошибке:
» Произошла ошибка во время локальной обработки отчета. Определение отчета » неверно. Определение этого отчета недопустимо или не поддерживается данной версией служб Reporting Services. Определение отчета может быть создано в более поздней версии служб Reporting Services или содержать контент, который не является правильно сформированным или недопустимым на основе схем службы Reporting Services. Подробности: десериализация не удалась: элемент «ReportParameters» в пространстве имен «http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition» имеет неполное содержимое Список возможных ожидаемых элементов: «ReportParameter» в пространстве имен «http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition». Строка 1, позиция 385. »
Причины
Новый шаблон был создан с помощью » ReportTemplateAuthoringUtility» приложение, то заголовок и тело не существует.
В моем проекте есть ReportViewer. Когда я создаю .exe этого файла в InstallShield в Vsual Studio 2012, я добавляю его в Redistributables Microsoft ReportViewer 2010
.
Когда я устанавливаю свое приложение в Windows 8, каждый ReportViewer отображает отчет правильно.
У меня проблема с Windows XP
, ReportViewer загружается правильно, но отображает эту ошибку вместо правильного отчета:
Ошибка при обработке локального отчета. Определение отчета «недействительно. При обработке отчета произошла непредвиденная ошибка.
Не удалось загрузить файл или сборку Microsoft.ReportViewer.ProcessingObjectMode. Версия = 11.0.0., Культура = нейтральный, PublicKeyToken = 89845dc8080cc91 или одна из его зависимостей. эта система не может найти указанный файл.
Я гарантирую вам это в references I have added Microsoft.ReportViewer.Winfroms 11.0.0.0
и Copy Local = true
.
Как я могу решить эту проблему?
4 ответа
Лучший ответ
Выяснилось, что эта ошибка означает, что вам не хватает Microsoft.ReportViewer.PorcessingObjectMode.dll
version 11.0.0.0
. Есть одно решение:
На своей машине Windows 8
сделайте следующее:
-
Откройте командную строку dos (нажмите START + R, затем введите cmd и нажмите ENTER)
-
Набирайте
cd ..
, пока не дойдете доC: >
НаберитеCd windowsassemblygac_msilMicrosoft.ReportViewer.pro*
и нажмите Enter. -
Просто введите
cd 11*
-
Затем введите
copy * c:
-
.dll
будет скопирован в ваш каталогC
. -
Этот файл просто скопируйте в свой
Program Files
наWindows XP machine
в папку, в которой было установлено ваше приложение.
Надеюсь, это поможет другим, так как я долгое время занимался этой проблемой.
12
Marek
15 Янв 2014 в 18:33
Я поддержал ответ, помеченный как ответ, потому что мне фактически не хватало .dll, но я не исправил его так, как предложил @Marek. Я использую VS2013 и устанавливаю пакет Microsoft.Reporting nuget, устраняющий проблему. Я бы посоветовал всем, у кого есть эта проблема, попробовать это. Таким образом, вы автоматически получите все зависимости.
16
Ben
8 Апр 2015 в 16:46
Ответ Марека великолепен и помог мне, я просто хотел добавить дополнительный файл, который мне нужен. Кроме того
Microsoft.ReportViewer.ProcessingObjectModel.dll
Мне также нужно
Microsoft.SqlServer.Types.dll
(Я запускаю это с сервера, на котором есть SQLServer, но нет служб Reporting Services , поэтому, возможно, поэтому отсутствовал второй файл.)
Как указал Марек, вам нужно скопировать файл с помощью командной строки, потому что библиотеки DLL в GAC_MSIL скрыты от проводника Windows, поэтому вы не увидите их, если будете искать их с помощью проводника. Я был в тупике, потому что я генерирую PDF-файл с ежедневной задачей, поэтому все, что я продолжал видеть в моем файле журнала, было загадочной ошибкой "An error occurred during local report processing."
. Я никогда не видел лица ReportViewer, которое, по крайней мере, говорит вам об отсутствующем файле.
Чтобы устранить эту проблему, я создал программу быстрого тестирования и отобразил ReportViewer, который прояснил, какие библиотеки DLL мне нужны:
2
Kiquenet
16 Ноя 2015 в 14:24
Для начала
Это необходимо для установки пакетов nuget для ‘Microsoft.Report.Viewer’ , ‘ReportViewer.WebForms’ , ‘Microsoft.ReportViewer .WinForms , а также Microsoft.SqlServer.Types .
https://www.nuget.org/packages/ReportViewer.WebForms/
https://www.nuget.org/packages/Microsoft.ReportViewer.WinForms/
https://www.nuget.org/packages/Microsoft.Report.Viewer/
https://www.nuget.org/packages/Microsoft.SqlServer.Types/
Затем следует проверить web.config на наличие каких-либо тегов
<system.web>
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</buildProviders>
<assemblies>
<add assembly="Microsoft.ReportViewer.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</assemblies>
</compilation>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" validate="false" />
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</handlers>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
1
keivan kashani
6 Фев 2019 в 11:45
Недопустимое определение отчета.
Просто наткнулся на этот вопрос, так как у меня была такая же проблема. В моем случае у меня была ссылка на более старую версию ReportViewer.WinForms. При переключении версий все работало нормально. Возможно, это не тот случай, что у вас, но я просто подумал, что позвоню, если кто-нибудь еще найдет эту страницу.
ответ дан 02 мая ’13, 00:05
Я столкнулся с почти аналогичной проблемой, но в другой версии Visual Studio (2012), и я обнаружил, что проблема связана с версией Microsoft.ReportViewer.WebForms.dll или winforms. Возможно, вы все еще ссылаетесь на старую версию, связанную с вашей текущей версией Visual Studio, поэтому проверьте версию dll и, если это так, удалите ее и добавьте последнюю версию.
ответ дан 05 мар ’15, в 11:03
Я столкнулся с этой же проблемой, и решение для меня состояло в том, чтобы отредактировать файл:
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0
ReportingServicesMicrosoft.ReportingServices.targets
И измените строку № 2, в которой ранее говорилось следующее:
<UsingTask TaskName="Microsoft.Reporting.RdlCompile"
AssemblyName="Microsoft.ReportViewer.Common, Version=9.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
К этому:
<UsingTask TaskName="Microsoft.Reporting.RdlCompile"
AssemblyName="Microsoft.ReportViewer.WebForms, Version=10.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Как только это было сделано, моя программа снова начала компилироваться.
Создан 08 июля ’13, 18:07
У меня была точно такая же проблема. Для меня решением было исключить отчет из проекта и добавить его снова. После этого он успешно скомпилировался.
ответ дан 21 авг.
Я не совсем понимаю, почему за ответ @user2702793 проголосовали против, потому что это предложение только что спасло мою карьеру:
Рассматривать
- Создание пустого отчета SSRS 2008 и копирование всего содержимого из отчета SSRS 2005 в новый.
- скопируйте имя отчета SSRS 2005, если вы хотите сохранить имя отчета без изменений
- удалите этот отчет (SSRS 2005, из которого вы только что скопировали содержимое в новый отчет)
- переименуйте новый SSRS 2008 (с удаленным содержимым отчета SSRS 2005) и вставьте имя отчета.
У меня была очень похожая ситуация, упомянутая выше, за исключением того, что я хотел сохранить старые версии SSRS вместо их обновления. Что в основном заставило меня сделать копию старой версии, скопировать содержимое из случайно обновленного отчета и вставить его в скопированный отчет, а также скопировать имя обновленного отчета, удалить его и переименовать мой скопированный отчет, чтобы сохранить то же имя только что удаленного отчета.
Редактировать: Конечно, в моем случае я также хотел внести изменения в старый отчет, который был в обновленном отчете, поэтому мне пришлось долго работать, чтобы не потерять мои текущие изменения.
Создан 10 июн.
Решение, которое сработало для меня, состояло в том, чтобы запустить инструмент очистки .NET, сначала я попробовал инструмент восстановления .NET framework, и он не сработал. Я прочитал предложения здесь
Создан 23 сен.
В свойствах ReportViewer в веб-форме разверните LocalReport/Path, в поле укажите правильный путь к отчету.
- Это работает для меня …
Создан 25 фев.
Возможно проблема с конвертацией. Воссоздайте новый отчет за 2008 год. И я предлагаю использовать VS2010. У меня такая же проблема при редактировании отчета с VS2012.
ответ дан 12 дек ’13, 16:12
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
c#
report
rdlc
or задайте свой вопрос.
- Remove From My Forums
-
Question
-
User-1614457691 posted
All —
Please help.
I have a ReportViewer on my page bound to a simple Report, with a DataSet as the underlying data source.
It runs perfectly on my dev machine.
After I deploy, I get the following run-time-error…
An error occurred during local report processing.
The definition of the report ‘Main Report’ is invalid.
The report definition is not valid. Details: Data at the root level is invalid. Line 1, position 1.
…which does not make any sense to me, given that that the report runs locally.
Do you have any hints?
Please advise.
Thank you.
(Sorry for the cross post but I just found this correct forum.)
— Mark Kamoski
- Remove From My Forums
-
Question
-
User-1614457691 posted
All —
Please help.
I have a ReportViewer on my page bound to a simple Report, with a DataSet as the underlying data source.
It runs perfectly on my dev machine.
After I deploy, I get the following run-time-error…
An error occurred during local report processing.
The definition of the report ‘Main Report’ is invalid.
The report definition is not valid. Details: Data at the root level is invalid. Line 1, position 1.
…which does not make any sense to me, given that that the report runs locally.
Do you have any hints?
Please advise.
Thank you.
(Sorry for the cross post but I just found this correct forum.)
— Mark Kamoski
Спокойно доделывал отчет через reportviewer. Нужно было вставить пару параметров. Но как только начинаю их добавлять — отчет крашится насовсем.
Пишет, мол, определение данного отчета является недопустимым или не поддерживается данной версией служб Reporting Services. Определение отчета имеет неверное целевое пространство имен, не подлежащее обновлению (и показывает ссылку подключения xmlns).
Добавлено через 51 минуту
Новая информация: я проверил влияние параметров на отчет и увидел, что при первом же создании параметра структура отчета меняется, xmlns изменяется с 2008 на 2016 версию, и в структуру внедряются теги типа «ReportSections».
Таким образом, ни 2016 версию, ни «ReportSections» (если менять на 2008) отчет не видит.
Каким образом использовать в отчете параметры, если они меняют структуру отчета на слишком новую, которая не читается?
Марек ответ велик и помог мне, я просто хотел добавить дополнительный файл, который мне нужен. В дополнение к
Microsoft.ReportViewer.ProcessingObjectModel.dll
Мне также понадобилось
Microsoft.SqlServer.Types.dll
(Я запускаю это с сервера, на котором есть SQLServer, но не для служб Reporting Services, поэтому, возможно, почему второй файл отсутствовал.)
Как указывал Марек, вам нужно скопировать файл с помощью командной строки, потому что библиотеки DLL в GAC_MSIL скрыты из Проводника Windows, поэтому вы не увидите их, если их искать с помощью проводника.
Я был в тупике, потому что я создаю PDF файл с ежедневной задачей, поэтому все, что я видел в моем файле журнала, было загадочной ошибкой "An error occurred during local report processing."
Я никогда не видел FaceViewer, что, по крайней мере, говорит вам пропавший файл.
Чтобы устранить эту проблему, я создал тестовую программу quickie и отобразил ReportViewer, что сделало более понятным, какие DLL мне нужны:
У меня есть приложение VB, которое будет использовать .rdl для создания отчетов в формате PDF с помощью Microsoft.ReportViewer.WinForms.
Существуют функции, которые мы позволяем приложению запускать без отображения какого-либо пользовательского интерфейса для создания определенных отчетов на основе настроек в базе данных. И мы используем планировщик задач для ежедневного запуска приложения утром для создания некоторых ежедневных отчетов.
У нас есть несколько клиентов, использующих одно и то же приложение с одинаковыми отчетами rdl. Но один из клиентов продолжает получать проблему, когда планировщик задач запускает приложение, в то время как другие работают нормально.
Приложение в основном генерирует 11 отчетов каждый день по утрам, но 1 из отчетов продолжает выдавать исключение всякий раз, когда планировщик задач запускает его утром.
Microsoft.Reporting.WinForms.LocalProcessingException: при обработке локального отчета произошла ошибка. Microsoft.Reporting.DefinitionInvalidException: определение отчета «xxx.rdl» недопустимо.
Но когда мы не смогли воспроизвести проблему, когда мы запускаем планировщик задач или запускаем программу вручную после этого.
Полный стек ошибок:
Error Message : Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report 'D:EASIAutoReportSSRSReportReport1tic_movie_tax_report.rdl' is invalid. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> System.Runtime.InteropServices.COMException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed)
at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext()
at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext()
at System.Configuration.ClientConfigPaths.GetEvidenceInfo(AppDomain appDomain, String exePath, String& typeName)
at System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix(AppDomain appDomain, String exePath)
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Xml.Schema.Parser..ctor(SchemaType schemaType, XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
at System.Xml.Schema.XmlSchema.Read(XmlReader reader, ValidationEventHandler validationEventHandler)
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeSerializerSettings2005.CreateReaderSettings()
at Microsoft.ReportingServices.RdlObjectModel2005.Upgrade.UpgradeImpl2005.CreateReaderSettings()
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeFrom200501(XmlReader xmlReader, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.UpgradeUnified(Stream stream, XmlReader xmlReader, String namespaceURI, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.RdlUpgrader.Upgrade(Stream stream, Boolean throwUpgradeException, Boolean upgradeDundasCRIToNative, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportProcessing.RDLUpgrader.UpgradeToCurrent(Stream stream, Boolean throwUpgradeException, Boolean renameInvalidDataSources, RDLUpgradeResult& upgradeResults)
at Microsoft.ReportingServices.ReportPublishing.RdlObjectModelUpgradeStrategy.Upgrade(Stream definitionStream)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase1(Stream definitionStream, String& description, String& language, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, Boolean& hasExternalImages, Boolean& hasHyperlinks)
at 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)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, IDataProtection dataProtection, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection)
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
--- End of inner exception stack trace ---
at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.CompileReport()
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
--- End of inner exception stack trace ---
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.LocalReport.GetParameters()
at SSRSReport.frmSsrsReport.SetReportParameter(String ReportTitle)
at SSRSReport.frmSsrsReport.ViewReport(Boolean showSplash)
at SSRSReport.frmMain.GenerateAutoReports(DateTime selectedDate)
Код:
1. rptViewer.LocalReport.ReportPath = fileName : executed on function [SSRSReport.frmSsrsReport.ViewReport]
2. rptViewer.LocalReport.GetParameters() : executed on function [SSRSReport.frmSsrsReport.SetReportParameter]
- Remove From My Forums
-
Вопрос
-
Добавил на страницу веб-часть Reporting Services. В панели инструментов при нажатии на кнопку «…» в поле «Отчет» открывается окно с ошибкой:
Возикла неожиданная ошибка. Идентификатор взаимосвязи и пр.
Как побороть?
Ответы
-
На
MSDN нашел ошисание ошибки:rsInvalidReportDefinition is a critical error that will occur if a report definition is invalid. For example, if a
Report contains an empty
Body element, this error will occur.Но не пойму, как это связано с SP, разве что отчет создавался не в нужной версии билдера? Ошибку вызывает отчет из RB 3.0, в 2.0 пока не пробовал — в процессе…
-
Помечено в качестве ответа
6 апреля 2011 г. 10:21
-
Помечено в качестве ответа
-
Косвенным признаком того, что данный (их м.б. несколько) сервер отчетов в режиме интеграции может служить, то, что при заходе по URL вам выдается ошибка.
-
Помечено в качестве ответа
Виноградов Владимир
6 апреля 2011 г. 10:21
-
Помечено в качестве ответа