Ошибка SSRS при предварительном просмотре: "Размер, необходимый для буферизации содержимого XML, превысил квоту буфера" скрывает исходную ошибку
Я понимаю, что с моим отчетом определенно что-то не так (например, столбцы missmatcch), и мне нужно исправить это, но я вижу сообщение об ошибке WCF, которое скрывает реальную проблему, и именно это скрывает меня гораздо больше, чем исходная проблема: несоответствие столбцов.
Я предполагаю, что нам нужно настроить размер буфера WCF, и мы получим оригинальное сообщение о проблеме. Но где находится файл конфигурации? Текстовый поиск "system.serviceModel" в C:\Program Files (x86)\Microsoft Visual Studio 10.0 не приносит хорошей идеи...
PS Так как это всего лишь предварительный просмотр отчета, я не думаю, что это проблема конфигурации SSRS. Проблема локализована где-то в процессе DevStudio или в процессе внутреннего веб-сервера DevStudio...
PPS Пожалуйста, помогите мне тоже улучшить вопрос. Я вижу, что респонденты не понимают, какая помощь мне нужна.
14 ответов
Я столкнулся с несколькими "разновидностями" этой ошибки в предварительном просмотре SSRS. Похоже, что рендер для режима Preview довольно хрупкий.
Существует простой способ решить эту проблему. Проигнорируйте ошибку и попытайтесь загрузить файл RDL на сервер отчетов. Загрузчик с радостью расскажет вам, что именно не так с вашим файлом, - он точно скажет вам, в каком поле возникла проблема, и что это за проблема. Если есть несколько ошибок, вам сообщат каждое поле и ошибку, связанную с каждым.
Я могу создать эту фиктивную ошибку буфера XML с помощью любого из следующих:
- Добавьте новый Tablix, начните соединять его с набором данных, затем отмените.
- Скопируйте / вставьте некоторый текст в текстовое поле из документа MS Word, где одна или несколько строк имеют отрицательный правый отступ (правый конец столбца находится за пределами поля страницы).
- Соедините набор данных с возвращаемым значением varchar(8000).
Проверьте, не ссылаются ли какие-либо элементы отчета на поля, не входящие в существующую область набора данных.
Это действительно сработало для меня.
См. Ссылку ниже для получения дополнительной информации: http://connect.microsoft.com/SQLServer/feedback/details/742913/ssdt-reporting-services-designer-error
Я видел эту ошибку при добавлении нового поля в существующий набор данных, нажав "Обновить поля". Источник набора данных был хранимой процедурой. В результате в списке полей набора данных появилось только несколько исходных полей, а не новое поле. Если я попытался просмотреть отчет, я получаю ошибку буфера XML.
Обходной путь состоял в том, чтобы не обновлять поля, а нажать добавить новое поле и ввести имя нового поля в поле свойств набора данных последним.
Сработало нормально после этого.
Я снова получил эту ошибку сегодня.
Я создал таблицу для хранения данных, чтобы заменить два медленных запроса. Я изменил некоторые имена, чтобы очистить процесс.
Я думаю, что ошибка на самом деле означает, что в моем отчете так много проблем, что буфер, содержащий различные сообщения об ошибках, недостаточно велик, что приводит к сообщению об ошибке.
Размер, необходимый для буферизации содержимого XML, превысил квоту буфера
Конечно, это должно быть легко исправить, но Microsoft сказала, что они не будут это исправлять.
РЕДАКТИРОВАТЬ: я обновил свой ответ на основе исправления проблемы.
В настоящее время я испытываю эту проблему после изменения нескольких хранимых процедур и обновления имен наборов данных в отчете SSRS.
И когда я пытаюсь запустить предварительный просмотр, я получаю точно такую же ошибку.
Как выяснилось после изучения проблемы, проблема заключалась в том, что я изменил имя свойства своих наборов данных.
В моем отчете есть несколько мест, где формулы или выражения используют свойства старых имен наборов данных, которые я переименовал. После возврата имен наборов данных мне удалось получить настоящие ошибки, такие как пропущенные поля и т. Д., После того, как я установил свойства имени набора данных на прежние значения, они вернулись.
Я только изменил свойство name обратно на прежнее, имена хранимых процедур правильно ссылались на мои переименованные хранимые процедуры.
Другое решение - открыть файл.rdl в Report Builder 3.0 (в отличие от Visual Studio) и попытаться предварительно просмотреть его. Я обнаружил, что это дало мне подробную информацию об ошибке, хотя, если присутствует более одной ошибки, отображается только первая.
У меня была эта проблема, когда после копирования и вставки табликса он изменил CDbl в формуле на Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.CDbl. Я открыл XML и удалил все экземпляры "Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions". и тогда отчет сработал.
Я получил эту ошибку после копирования моего пользовательского кода в Visual Studio для выделения кода для лучшей читаемости. Итак, Visual Studio добавил определения классов в начало и конец файла. После редактирования кода я вставил его обратно в отчет Custom Code, затем получил эту ошибку. Исправлено было просто удалить определения классов (Public Class Class1 и End Class) из пользовательского кода. Итак, проверьте ваш пользовательский код также (если есть).
Для рабочего отчета, когда я попытался добавить столбец, он дал мне эту ошибку. Я редактировал .rdl
файл с помощью блокнота ++. После того, как SSRS предложило перезагрузить изменение с диска, оно работало без проблем.
Я получил эту ошибку после добавления некоторых новых параметров в существующий отчет.
По какой-то причине, когда я сначала создал параметры, затем изменил набор данных, чтобы использовать новые параметры, я получил ошибку, но когда я сначала изменил набор данных, затем добавил параметры, а я не получил ошибку.
Мне это показалось очень странным, поэтому я протестировал его, восстановив отчет из репозитория и повторив процесс три раза для каждого метода, и каждый раз имел идентичное поведение.
Я тоже сталкиваюсь с этой проблемой. Я решаю это Найти и заменить
- Microsoft.VisualBasic.Interaction.iif ==> iif
- Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.cdbl ==> cdbl
Я надеюсь, что это может кому-то помочь. Спасибо
Я ранее связал TextBox с
Поля!FieldName
и исправил это с
Поля!FieldName.Value
С учетом сказанного, а также с другими опубликованными ответами, эта ошибка происходит в разных вариантах. Моя проблема была исправлена после того, как я включил свойство поля "Значение".
У меня было то же сообщение об ошибке, и оно было полностью вызвано моим поступком. Это немного смущает, но если это кому-то поможет, то отлично! Я случайно скопировал свой запрос к набору данных, который включал в себя небольшой оператор sub select, который я использовал для проверки значений параметров / переменных.
Возможные коренные причины
- Неверное имя параметра (регистр / порядок)
- Доступ к несуществующей собственности.
и многое другое...
Решение: Чтобы получить точное сообщение об ошибке,
- Разверните отчет SSRS и найдите ошибку: уже предложено "Kim Crosser"
- Временно удалите раздел (SSRS/ содержимое отчета), который, по вашему мнению, не содержит ошибок, освободив место в буфере, чтобы вы могли получить реальное сообщение об ошибке. Позже добавьте разделы обратно на страницу (удалены ранее).