首页 文章

Crystal Reports for Visual Studio 2010错误

提问于
浏览
17

我正在尝试使用ASP.NET 4.0和Visual Studio 2010从我的Web应用程序运行水晶报表 . 我已从SAP站点安装以下内容(http://www.businessobjects.com/jump/xi/crvs2010/us2_default.asp

1)SAP Crystal Reports,Visual Studio 2010版本 - 标准EXE安装包,用于将软件安装到Visual Studio IDE中 .

2)用于.NET Framework 4的SAP Crystal Reports运行时引擎(64位)

我有一个名为Reports.aspx的页面,其中我有一个水晶报表查看器控件

<CR:CrystalReportViewer ID="rptViewer" runat="server" AutoDataBind="true" />

在Reports.aspx.cs文件中,我有以下代码:

protected override void OnPreRender(EventArgs e)
{
    ReportDocument report = new ReportDocument();
    var path = Server.MapPath("Reports/Sample.rpt");
    report.Load(path);
    report.SetDatabaseLogon("username", "password", "servername", "databasename");
    rptViewer.ReportSource = report;
}

在report.Load(path)行上,我收到以下错误:

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

我怎样才能解决这个问题?

9 回答

  • 0

    确保报告在 app_code 文件夹中初始化它的新实例,而不是初始化报告文档并在其中加载报告 .

    Sample report = new Sample();
    

    这对我有用

  • 10

    我也遇到了同样的问题我的问题是报告路径无效,可能你有同样的问题,检查Server.MapPath(“Reports / Sample.rpt”)返回有效路径?

  • 3

    您需要修改.rpt文件中的两个属性:

    • Build Action 默认设置为"Embedded Resource" . 将其更改为“ Content ” .

    • Copy to Output 默认设置为"Do not copy" . 将其更改为“ Copy always ” .

    重建,构建部署包和发布 . 完成!

  • 0

    注意:下面,术语“WebSite”指的是IIS中的实际网站节点,而不是网站中的虚拟目录 .

    问题根本原因:应用程序无法访问"aspnet_client"文件夹 .
    出现这种情况有几个原因:

    • 由于SAP CR安装程序似乎在... \ inetpub \ wwwroot \文件夹中安装了aspnet_client文件夹,如果您的网站物理路径不是... \ inetpub \ wwwroot,您的应用程序将无法访问aspnet_client文件夹 .

    • 如果将aspnet_client文件夹移动或删除到网站物理路径的顶层,则IIS应用程序将无法访问该文件夹 .

    问题解决方案(适用于Windows Server 2008 R2)

    • 转到服务器上的IIS管理器

    • 展开运行应用程序的WebSite的树视图节点

    • 查看网站节点下的级别,确保您看到"aspnet_client"文件夹 .

    • 如果您确实看到了该文件夹,那么这个根本原因可能不是您的问题的原因 .

    • 如果您没有看到该文件夹,请搜索服务器's hard drive for it and COPY it to the Web Site'的物理路径 .

    • 在“网站”节点上单击鼠标右键,然后从弹出菜单中单击“刷新”

    • 您现在应该直接在网站节点下的级别看到aspnet_client文件夹,并且应用程序中的报告应该可以正常工作 .

  • 5

    当我将网站转换为Web应用程序时,我遇到了这个问题 . 报告在我的开发机器上运行正常,但在服务器上运行不正常 . 然后我意识到服务器上缺少rpt文件!

    默认情况下,报表文件被视为嵌入式资源,并且在Web应用程序发布时不会被复制 . 我只是单独更改了它们,重新发布了网站,一切都很顺利 .

  • 2

    如果我错误地在Crystal Reports设计器中打开了报告文件,我的报告加载也会失败 .

  • 13

    这个错误是一种真正的享受,并且似乎有许多可能的前因 . 幸运的是,我只浪费了一天的特殊变化:

    ReportDocument.Load() 也会制作本地临时副本 . (这可能只是在来自网络驱动器位置的负载的情况下,我没有在本地负载的情况下测试它 . )

    如果发生加载的用户上下文没有权限在本地创建临时文件, Load 将失败并出现同样非常无用的错误 .


    另外,我最后用Process Monitor诊断出来了 . 它也可能对你有所帮助 .

  • 2

    请确保您的报告rpt文件位于其原始文件夹中 . 在我将我的MVC网站“发布”到IIS之后,我首先得到了同样的错误 . 我没有意识到“发布”没有将rpt文件放入包中 .

  • 6
    • 将“Crystal报表引擎”重新安装到服务器

    • Build Action设置为“Content” .

    它对我来说非常有用..!

相关问题