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

时间:2019-11-22 01:26:15

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

我在Windows Server 2012中部署了旧的Asp.net Web应用程序(Visual Studio 2005),并且运行了很多年。现在,我们遇到“加载报告失败-无效的报告文件路径”错误。然后,我检查了代码,以确保.rpt文件具有正确的路径,并且实际的.rpt文件已经在Web服务器中,但是已经存在。自从遇到此错误以来,我们只是在IIS中回收该应用程序的应用程序池,然后该应用程序再次平稳运行。

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

这是我的代码段:

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

1 个答案:

答案 0 :(得分:1)

错误消息指出您的路径不正确,因此反斜杠“ \”代表物理路径,而反斜杠“ /”代表服务器需要映射的相对网址。 因此,为了读取您的CR文件,您可以通过两种方式来完成此操作,具体取决于您的pReportDoc是哪种对象/类型: 如果是后端对象,则可以执行以下操作:

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

如果pReportDoc是一种WebControl或其他elese,则可以执行以下操作:

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

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