【问题标题】:Load Report Failed (Invalid Report File Path)加载报告失败(报告文件路径无效)
【发布时间】:2020-03-18 01:09:58
【问题描述】:

我在 Windows Server 2012 中部署了旧的 Asp.net Web 应用程序 (Visual Studio 2005),它运行了多年。现在,我们遇到“加载报告失败 - 报告文件路径无效”错误。然后我检查了代码,如果 .rpt 文件具有正确的路径并且实际的 .rpt 文件已经在 Web 服务器中,但它就在那里。自从遇到这个错误后,我们只是在IIS中回收了应用程序的应用程序池,应用程序又可以顺利运行了。

关于如何防止此问题再次发生的任何想法?

这是我的代码的 sn-p:

reportPath = Server.MapPath("~\crm-DailyActualSalesCompressed.rpt")
pReportDoc.Load(reportPath)
pReportDoc.SetDatabaseLogon(myConInfo.UserID, myConInfo.Password, myConInfo.ServerName, 
  myConInfo.DatabaseName)

【问题讨论】:

    标签: asp.net vb.net iis crystal-reports windows-server-2012


    【解决方案1】:

    正如错误消息所说,您的路径错误,这个反斜杠“\”是物理路径,这个斜杠“/”是相对 url,需要由服务器映射。 因此,为了读取您的 CR 文件,您可以通过两种方式执行此操作,具体取决于您的 pReportDoc 对象/类型的类型: 如果是后端对象,您可以这样做:

        reportPath = Request.PhysicalApplicationPath & "crm-DailyActualSalesCompressed.rpt"
        pReportDoc.Load(reportPath)
        pReportDoc.SetDatabaseLogon(myConInfo.UserID, myConInfo.Password, myConInfo.ServerName, myConInfo.DatabaseName)
    

    如果 pReportDoc 是一种 WebControl 或其他东西,你可以这样做:

        reportPath = Server.MapPath("~/crm-DailyActualSalesCompressed.rpt")
        pReportDoc.Load(reportPath)
        pReportDoc.SetDatabaseLogon(myConInfo.UserID, myConInfo.Password, myConInfo.ServerName, myConInfo.DatabaseName)
    

    显然,您还需要知道您的 CR 文件是在根目录(看起来)还是包含在其他嵌套路径中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多