我在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)
答案 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文件是位于根目录(看起来)还是包含在其他嵌套路径中