【问题标题】:Crystal Reports "Load Report Failed" error running report on the serverCrystal Reports 在服务器上运行报表时出现“加载报表失败”错误
【发布时间】:2011-10-16 07:59:55
【问题描述】:

我在服务器上收到错误“加载报告失败”,它在本地主机上运行没有错误。我正在使用 .Net 3.5 的 VS 2008。

这是我的代码:

ReportDocument reportDocument = new ReportDocument();
    String filePath = @"C:\abcSpaces\abc.com\xyz.com\wwwroot\Order Fulfilment.rpt";//full path
// I have tried OrderFullfilment.rpt and ~/OrderFullfilment.rpt and /OrderFullfilment.rpt
    try
    {
        reportDocument.Load(filePath);
        CrystalReportViewer1.ReportSource = reportDocument;
    }
    catch(Exception ex){
        Label1.Text = ex.Message;
}

Aspx 页面部分:

<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" Height="1291px"
        ReuseParameterValuesOnRefresh="True" Width="1125px" />

^我尝试过使用

<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
        <Report FileName="expenseRep_summary.rpt">
        </Report>
</CR:CrystalReportSource>

运气不好……

我用于引用程序集的 web.config 部分:

<compilation debug="true">
        <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="MySql.Data, Version=6.2.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
            <add assembly="MySql.Data.Entity, Version=6.2.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
            <add assembly="MySql.Web, Version=6.2.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
            <add assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/><add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Enterprise.Framework, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Data.AdoDotNetInterop, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.VSDesigner, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/></assemblies>
</compilation>

我已经尝试过 stackoverflow 中发布的所有这些解决方案:

CrystalReport Load report failed(不,我不能更改注册表或重新安装水晶报表,我的网站托管在外部服务器上)

load report failed(objReport到底在哪里??)

I got the problem in Crystal Report- Error Messsage:Load report failed(我没有关于报告类的对象:S)

Load report failed when implementing crystal report in asp.net 3.5(我尝试了这种“~”技术+绝对路径,但无济于事)

Load report failed in Windows server 2003(我对每个文件都设置了读写执行权限)

https://stackoverflow.com/questions/3337185/crystal-report-giving-load-failed-error(像我这样的人,还没有找到解决方案:P)

所以请帮帮我!否则我的客户会把我活活吃掉……

【问题讨论】:

标签: asp.net crystal-reports


【解决方案1】:

我知道这是一篇旧帖子。但对于仍在寻找答案的人:

您需要在页面标记中注册水晶报表

<% @ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
    Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

将报告的属性'复制到输出目录'设置为'始终复制'

crystalreportsource 中文件的路径为 ~/bin/YOURFOLDER/YOURFILE

<CR: CrystalReportSource ID ="CrystalReportSource1" runat ="server">
            <Report FileName="~/bin/oilmovement/rptOMDayEnd.rpt">
            </Report>
        </CR: CrystalReportSource>

现在报告应该可以工作了

【讨论】:

  • 解决了我的问题。这更像是解决问题的方法吗?想知道是否有更直接的解决方案
  • 我就是这样做的......总是!
【解决方案2】:
  • 为您的应用程序或网站选择应用程序池
  • 点击回收(右侧面板)
  • 将常规时间间隔 1740 的值减少到 20 分钟或设置您想要的值
  • 这将释放 iis 保留的所有资源。
  • 重启 iis。

希望这能解决您的问题

http://littleprograming.blogspot.com/2013/02/crystal-report-error-load-report-failed.html

【讨论】:

    【解决方案3】:

    我之前也遇到过同样的问题,看来您需要在服务器上安装 CR 运行时。仅有 DLL 是不够的。希望对您有所帮助。

    【讨论】:

    • 我向他们询问了 CR 运行时,但他们声称他们已经在服务器上拥有该运行时
    【解决方案4】:

    我知道这是一个老问题,但今天我遇到了类似的问题。 报告在本地工作,但当部署到服务器 (IIS) 时,我遇到了同样的错误。

    尝试为 IIS 用户(创建报告的进程)添加写入/读取权限到 %TEMP%。

    报告在 Temp 中生成,查看器从那里获取显示在站点上的内容。

    【讨论】:

    • Pingo!!假脱机文件夹中的 IIS_USER 缺少写入权限。注意:就我而言,该文件夹位于应用程序的结构中。谢谢!
    【解决方案5】:

    我也遇到了这个问题,在用尽所有其他选项后,将应用程序池设置 Load User Profile 从 False 更改为 True,从而解决了问题。

    这是在一个已部署到数十台 IIS6、IIS7、IIS7.5 服务器的应用程序上,我们以前从未遇到过此问题。应用程序池与身份网络服务(通常是)一起运行,我首先尝试授予 C:\windows\temp 权限,但它不起作用(尽管我没有检查这是否真的是临时目录)。

    我怀疑另一种解决方案可能是将网络服务添加到 IIS_IUSRS 组,但我没有尝试过,也不想这样做,以防它影响服务器上的其他应用程序。

    【讨论】:

      【解决方案6】:

      最常见的原因可能是,Crystal Report (*.rpt) 文件实际上并未存在于目标位置,这可能在构建和发布应用程序期间遗漏了

      解决方案:
      打开Visual Studio,选中所有CrystalReport.rpt文件,右键设置“属性”

      构建操作:内容(也可以是嵌入式资源)
      CopyToOutputDirectory:始终(如果较新也可以是 Copy)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-02
        • 1970-01-01
        • 2012-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多