Не удается запустить CrystalReports при развертывании в IIS - PullRequest
0 голосов
/ 13 сентября 2018

У нас есть проект ASP.NET в c # (Visual Studio 2015). В рамках приложения мы включили несколько стандартных отчетов Crystal Reports, разработанных в плагине Crystal для VS 2015. На локальном компьютере разработчика мы можем без проблем запускать отчеты, используя приведенный ниже код.

using CrystalDecisions.CrystalReports.Engine;
...
ReportDocument report = new ReportDocument();
TableLogOnInfo conInfo = new TableLogOnInfo();
conInfo.ConnectionInfo.UserID = Global.Config.GetValue("USERID");
conInfo.ConnectionInfo.Password = Global.Config.GetValue("PASSWORD");
conInfo.ConnectionInfo.DatabaseName = Global.Config.GetValue("DATABASENAME");
conInfo.ConnectionInfo.ServerName = Global.Config.GetValue("DATASOURCE");

report.Load(reportPath + name);
for (int i = 0; i < report.Database.Tables.Count; i++)
{
    report.Database.Tables[i].ApplyLogOnInfo(conInfo);
}

return new FileStreamResult(report.ExportToStream(ExportFormatType.PortableDocFormat), "application/pdf");

Но при развертывании на IIS Server на компьютере под управлением Windows 2008 Server r2 мы получаем ошибку при создании экземпляра объекта ReportDocument:

at CrystalDecisions.Shared.SharedUtils..cctor() : 
Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.

Все библиотеки CrystalDecisions. *. Включены в опубликованное приложение. Я дергаю себя за волосы, пытаясь понять, что не так.

Для ясности, мы не используем Crystal Viewer. Мы просто пытаемся запустить отчет (* .rpt) и вывести его в поток файлов PDF.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Я скопировал log4net.dll с моего локального компьютера, чтобы избежать первой ошибки. Видимо, вам нужно установить Crystal Runtime также. Но среда выполнения не будет установлена ​​на сервере Windows 2008 r2 SP1. Не удалось при регистрации некоторых из DLL.

Нам удалось получить и более старую версию (CRRuntime_32bit_13_0_19) для установки. Но у этого были проблемы с скомпилированным кодом.

Мне нужно было применить некоторые обновления Microsoft, чтобы наконец установить среду выполнения CRRuntime_32bit_13_0_23 для установки. Как только эта среда была установлена, все было хорошо.

Документация не очень понятна. Также не существует простого способа найти список предпосылок для правильного времени выполнения. Я понятия не имею, какой MS Update требуется. Я только что установил их несколько. Этот сервер был заблокирован для обновлений до этого, потому что он был стабильным в течение нескольких лет.

Извлеченный урок.

0 голосов
/ 13 сентября 2018

Похоже, это не связано с Crystal Reports.

Вам необходимо развернуть библиотеку log4net . Возможно, ваше приложение использует его для регистрации журнала (например, возникновения исключений).

...