加载报告失败(报告文件路径无效)

Load Report Failed (Invalid Report File Path)

我在 Windows Server 2012 中部署了旧的 Asp.net Web 应用程序 (Visual Studio 2005),它运行了多年。现在,我们遇到了 "Load report failed - Invalid Report File Path" 错误。然后我检查了代码,如果 .rpt 文件有正确的路径,并且实际的 .rpt 文件已经在网络服务器中,但它就在那里。自从遇到这个错误后,我们只是在IIS中回收应用程序的应用程序池,应用程序再次顺利运行。

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

这是我的代码片段:

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

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

    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 文件是在根目录下(看起来如此)还是包含在其他嵌套路径中