C# 安装在E上的Crystal Reports 2011.Net 4.0操作系统:运行报告时出错

C# 安装在E上的Crystal Reports 2011.Net 4.0操作系统:运行报告时出错,c#,.net,vb.net,crystal-reports-2010,C#,.net,Vb.net,Crystal Reports 2010,我有一台PC,操作系统安装在E:上,但它没有C:驱动器。在此基础上,我安装了运行良好的.NET4.0WPF应用程序 然而,当我试图访问crystal报告时,它给出了以下例外情况。该用户可以从其在windows资源管理器中的网络位置访问报告,因此我假设要求Crystal在本地复制报告的行为会导致问题 因此,是否有人可以建议在何处创建本地副本和/或我如何控制该副本 谢谢 打开报告的代码: oReportDocument.Load(oSystemData.ReportPath + StandardRe

我有一台PC,操作系统安装在E:上,但它没有C:驱动器。在此基础上,我安装了运行良好的.NET4.0WPF应用程序

然而,当我试图访问crystal报告时,它给出了以下例外情况。该用户可以从其在windows资源管理器中的网络位置访问报告,因此我假设要求Crystal在本地复制报告的行为会导致问题

因此,是否有人可以建议在何处创建本地副本和/或我如何控制该副本

谢谢

打开报告的代码:

oReportDocument.Load(oSystemData.ReportPath + StandardReport.RPTFile, CrystalDecisions.[Shared].OpenReportMethod.OpenReportByTempCopy) 
调用堆栈的提取:

CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Invalid report file path.
在CrystalDecisions.CrystalReports.Engine.EngineeExceptionUtils.DoThrowException(字符串消息,EngineeExceptionErrorId) 在CrystalDecisions.CrystalReports.Engine.ExceptionRower.ThrowenEngineException(字符串messageID,EngineeExceptionErrorId) 在CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(字符串文件名,OpenReportMethod openMethod,Int16 parentJob) 在CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport()处
在CrystalDecisions.CrystalReports.Engine.ReportDocument.get_Subreports()

加载报告时,它会生成报告的本地临时副本。找出该系统上的temp环境变量。如果是e:\temp,那么我怀疑您没有将文件写入该文件夹所需的权限

这就是说,因为听起来像是在构建一个Windows WPF应用程序,所以它可能正如您所建议的那样,实际上是在尝试一个无效的目录,如“c:\anything”

为了准确了解问题所在,我建议运行Process Monitor,您可以在此处下载:

它很容易使用,唯一恼人的是它在你的系统上观察到了大量的东西。要解决这个问题,右键单击“杂乱”条目(在捕获窗口中)并选择过滤它们。它允许筛选器位于进程(即myWPFapp.exe)或活动类型上,在这种情况下,您希望监视文件系统(显然)

一旦您让它捕获事件,并将其过滤掉,这样它就不会迅速填满窗口,只需运行您的应用程序。您将看到对硬盘驱动器及其试图使用的文件夹的任何失败访问

祝你好运