2012-03-21 3 views
1

Я разрабатываю веб-приложение с использованием среды ASP.NET MVC 3.
Я реализовал страницу ASPX, содержащую элемент управления CrystalReportViewer.ASP.NET + IIS + Crystal Reports + Ошибка загрузки отчета

Я создаю экземпляр объекта 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 (String filename, OpenReportMetho д openMethod, Int16 parentJob)
    меню CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (строка файла)
    меню ASP.aspnetforms_editionresultats_aspx.Page_Load (Object отправителя, EventArgs е) йапз .aspx: LIGNE 43
    меню System.Web. Util.CalliHelper.EventArgFunctionCaller (IntPtr ∥f∥p, объект о, объект т, EventArgs е)
    меню System.Web.Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs е)
    меню System.Web.UI.Control.OnLoad (EventArgs e)
    à System.Web.UI.Control.LoadRecursive()
    à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean inclu deStagesAfterAsyncPoint)

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

+0

Первое предложение: попробуйте перевести свой код на страницу_Примечание –

+0

У вас есть правильные сроки выполнения Crystal, установленные на сервере?(версия и архитектура) –

+0

@EmanueleGreco: Я попытался переместить мой код в метод события Page_Init, но я все еще сталкиваюсь с исключением. – user1139666

ответ

2

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

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

я столкнулся с той же проблемой и то, что я сделал, чтобы решить 'Load Report Failed' проблемы.

  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\.

Прошу прокомментировать, если это не сработает.

Смежные вопросы