Ошибка при компиляции отчета
Добавлено: 31 июл 2015, 09:00
Периодически на одном из тестовых стендов один отчет перестает работать.
При попытке его скомпилировать получаем исключение такого рода
"Hour" это имя вычисляемого поля (Calculated Column).
Код, вызывающий компиляцию:
Отчеты хранятся в БД, как mrt файл в виде поля
Данный отчет в БД находится вроде бы в исправном состоянии - если подключиться к этой БД с другого компьютера, отчет нормально компилируется.
Прочие отчеты в это же время работают в этом же сайте.
Перезапуск проблемного сайта не помогает.
Помогает редеплоймент отчета в БД и перезапуск сайта, но все же на другой компьютер эта же БД отдает отчет в исправном состоянии.
Используемое ПО Reports.Web. 2015.1.11
Подскажите, куда копать?
Сейчас попробую обернуть вызов компиляции в try...catch, чтобы сбросить в лог текущий вид .mrt файла, как я его получил из БД
При попытке его скомпилировать получаем исключение такого рода
Код: Выделить всё
Время: 2015-07-31 06:32:39.765
Категория: Exceptions
Тип: Error
An exception of type 'System.Exception' occurred and was caught.
----------------------------------------------------------------
Type : System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : c:\Windows\Temp\drbsw1bh.0.cs(1814,20) : error CS0103: Имя "Hour" отсутствует в текущем контексте
Source : Stimulsoft.Report
TargetSite : Void Compile(System.String, System.IO.Stream, Stimulsoft.Base.StiOutputType, Boolean, System.Object)
HResult : -2146233088
Stack Trace : в Stimulsoft.Report.StiReport.Compile(String path, Stream stream, StiOutputType outputType, Boolean autoCreate, Object standaloneReportType)
в Stimulsoft.Report.StiReport.Compile(String path, Stream stream, StiOutputType outputType, Boolean autoCreate)
в Stimulsoft.Report.StiReport.Compile(String path, StiOutputType outputType, Boolean autoCreate)
Код, вызывающий компиляцию:
Код: Выделить всё
using (var report = new StiReport())
{
LoadFromDb(metadataId, report);
_log.Write("Compiling report to {0}", fileName);
var s = new Stopwatch();
s.Start();
report.Compile(fileName, StiOutputType.ClassLibrary);
s.Stop();
_log.Write("Report {0} compiled in {1} ms", metadataId, s.ElapsedMilliseconds);
}
Код: Выделить всё
[ReportDefinition] [varbinary] (max) NULL
Прочие отчеты в это же время работают в этом же сайте.
Перезапуск проблемного сайта не помогает.
Помогает редеплоймент отчета в БД и перезапуск сайта, но все же на другой компьютер эта же БД отдает отчет в исправном состоянии.
Используемое ПО Reports.Web. 2015.1.11
Подскажите, куда копать?
Сейчас попробую обернуть вызов компиляции в try...catch, чтобы сбросить в лог текущий вид .mrt файла, как я его получил из БД