水晶报道

时间:2009-02-18 18:33:43

标签: .net crystal-reports

我将ASP.Net应用程序从.NET 1.1升级到.NET 2.0。所有网页仍然可以正常工作,但Crystal Reports将无法加载。

堆栈追踪:

Load report failed.
StackTrace:    at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)

有谁知道它为什么不加载?

架构:Windows Server 2008(IIS 7)

调用报告的代码:

ReportClass ApprovalPage=new CustomerJobLabelApprovalMod();
ApprovalPage.SetDataSource(reportDataSet);

CustomerJobLabelApprovalMod的代码:

//------------------------------------------------------------------------------
// <autogenerated>
//     This code was generated by a tool.
//     Runtime Version: 1.1.4322.2407
//
//     Changes to this file may cause incorrect behavior and will be lost if 
//     the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------

namespace LabelVault {
    using System;
    using System.ComponentModel;
    using CrystalDecisions.Shared;
    using CrystalDecisions.ReportSource;
    using CrystalDecisions.CrystalReports.Engine;


    public class CustomerJobLabelApprovalMod : ReportClass {

        public CustomerJobLabelApprovalMod() {}

        public override string ResourceName {
            get {
                return "CustomerJobLabelApprovalMod.rpt";
            }
            set {
                // Do nothing
            }
        }

        [Browsable(false)]
        [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public CrystalDecisions.CrystalReports.Engine.Section Section1 {
            get {
                return this.ReportDefinition.Sections[0];
            }
        }

        [Browsable(false)]
        [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public CrystalDecisions.CrystalReports.Engine.Section Section2 {
            get {
                return this.ReportDefinition.Sections[1];
            }
        }

        [Browsable(false)]
        [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public CrystalDecisions.CrystalReports.Engine.Section Section3 {
            get {
                return this.ReportDefinition.Sections[2];
            }
        }

        [Browsable(false)]
        [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public CrystalDecisions.CrystalReports.Engine.Section Section4 {
            get {
                return this.ReportDefinition.Sections[3];
            }
        }

        [Browsable(false)]
        [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public CrystalDecisions.CrystalReports.Engine.Section Section5 {
            get {
                return this.ReportDefinition.Sections[4];
            }
        }
    }

    [System.Drawing.ToolboxBitmapAttribute(typeof(CrystalDecisions.Shared.ExportOptions), "report.bmp")]
    public class CachedCustomerJobLabelApprovalMod : Component, ICachedReport {

        public CachedCustomerJobLabelApprovalMod() {}

        public virtual bool IsCacheable {
            get {
                return true;
            }
            set {}
        }

        public virtual bool ShareDBLogonInfo {
            get {
                return false;
            }
            set {}
        }

        public virtual System.TimeSpan CacheTimeOut {
            get {
                return CachedReportConstants.DEFAULT_TIMEOUT;
            }
            set {}
        }

        public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport() {
            CustomerJobLabelApprovalMod rpt = new CustomerJobLabelApprovalMod();
            rpt.Site = this.Site;
            return rpt;
        }

        public virtual string GetCustomizedCacheKey(RequestContext request) {
            String key = null;
            // // The following is the code used to generate the default
            // // cache key for caching report jobs in the ASP.NET Cache.
            // // Feel free to modify this code to suit your needs.
            // // Returning key == null causes the default cache key to
            // // be generated.
            // 
            // key = RequestContext.BuildCompleteCacheKey(
            //     request,
            //     null,       // sReportFilename
            //     this.GetType(),
            //     this.ShareDBLogonInfo );
            return key;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

后来很多很难用Google搜索...

我必须在Windows\Temp上授予NETWORK SERVICE权限,因为Crystal Reports会抓取该用户,并且被模拟的用户(具有管理员权限。)所以该目录,而不是IIS目录,是正在使用的目录。

这令人沮丧,但它现在有效!

答案 1 :(得分:1)

我似乎记得这样做了一段时间后我在web.config中找到了一些旧的Crystal Reports内容的引用。