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

问题描述 投票:0回答:1

我在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)
asp.net vb.net iis crystal-reports windows-server-2012
1个回答
0
投票

错误消息说您在路径上错了,这个反斜杠“ \”代表物理路径,这个斜杠“ /”代表服务器需要映射的相对URL。因此,为了读取您的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文件是在根目录上(看起来)还是包含在其他嵌套路径中

© www.soinside.com 2019 - 2024. All rights reserved.