ASP .NET + IIS + Crystal Reports + загрузка отчета не удалась - PullRequest
1 голос
/ 21 марта 2012

Я разрабатываю веб-приложение с помощью платформы ASP .NET MVC 3.
Я реализовал страницу ASPX, содержащую элемент управления CrystalReportViewer.

Я создаю экземпляр объекта ReportDocument в моем методе события Page_Load моей страницы ASPX.
Затем я загружаю файл RPT, используя метод Load моего ReportDocument.

Мой RPT правильно загружен, когда я использую веб-сервер разработки VS2010, и я могу просматривать его через программу просмотра. Но вызов метода Load моего ReportDocument вызывает исключение, когда я использую свой локальный веб-сервер IIS 5.1.

Вот некоторая информация об исключении:

  • Тип исключения: CrystalReportsException
  • Сообщение: ошибка загрузки отчета
  • StackTrace:

    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened ()
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (имя файла строки, метод OpenReportMethod, метод open16, родительский задание Int16)
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (имя файла строки)
    ASP.aspnetforms_editionresultats_aspx.Page_Load (Отправитель объекта, EventArgs e) dans .aspx: ligne 43
    à System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Объект o, Объект t, EventArgs e)
    à System.Web.Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs e)
    à System.Web.UI.Control.OnLoad (EventArgs e)
    à System.Web.UI.Control.LoadRecursive ()
    System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Кто-нибудь знает, почему возникает исключение при использовании IIS?

Ответы [ 2 ]

2 голосов
/ 30 октября 2012

Это работает для меня:

protected void Page_UnLoad(object sender, EventArgs e)
{

        this.CrystalReportViewer1.Dispose();
        this.CrystalReportViewer1 = null;
        // CrystalReportViewer1.Close();
        // CrystalReportViewer1.Dispose();
        GC.Collect();

}
protected void Button1_Click(object sender, EventArgs e)
{
    ReportDocument cryRpt = new ReportDocument();
    cryRpt.Load("C:\\inetpub\\wwwroot\\CrystalReportDemo\\CrystalReport.rpt");
    CrystalReportViewer1.ReportSource = cryRpt;
    CrystalReportViewer1.RefreshReport();
}

}

0 голосов
/ 14 сентября 2013

Я столкнулся с той же проблемой, что и я, чтобы решить проблему «Ошибка загрузки отчета».

  1. Сначала проверьте, существует ли папка отчета или .rpt файлы в папке проекта после публикации.проект asp.net.Я просто поместил всю папку проекта в корневой каталог IIS.Я использую свои отчеты в папке «Отчеты», которые не вызывают никаких ошибок.
  2. Затем скопируйте C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13” into your project main folder like C:\inetpub\wwwroot\YourProjectFolder\.

Пожалуйста, прокомментируйте, когда это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...