2012-05-04 24 views
0

我有一臺PC,操作系統已安裝在E:上,並且沒有C:驅動器。在這個我已經安裝了我的.net 4.0 WPF應用程序運行良好。Crystal Reports 2011 .Net 4.0操作系統安裝在E:在運行報告時出現錯誤

但是,當我嘗試訪問水晶報告時,它會給出下面的例外。此用戶能夠從Windows資源管理器中的網絡位置訪問報告,因此我假設要求Crystal將其複製到本地會導致問題?

因此,任何人都可以建議本地副本的創建地點和/或我如何控制這個。

感謝

代碼以打開報告:

oReportDocument.Load(oSystemData.ReportPath + StandardReport.RPTFile, CrystalDecisions.[Shared].OpenReportMethod.OpenReportByTempCopy) 

調用堆棧的摘錄:

CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Invalid report file path. 

在CrystalDecisions.CrystalReports.Engine.EngineExceptionUtils.DoThrowException(字符串消息,EngineExceptionErrorID ID) CrystalDecisions.CrystalReports.Engine.ExceptionThrower.ThrowEngineException中的 (String messageID,EngineExceptionEr rorID ID) 在CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(字符串文件名,OpenReportMethod openMethod,Int16的parentJob) 在CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport() 在CrystalDecisions.CrystalReports.Engine.ReportDocument.get_Subreports()

回答

1

它會在加載報表時生成報表的本地臨時副本。找出該系統上的臨時環境變量。如果它是e:\ temp,那麼我懷疑你沒有將文件寫入該文件夾所需的權限。

這就是說,因爲它聽起來像你正在建立一個Windows WPF應用程序,它可能是你的建議,並且實際上是在嘗試一個無效的目錄,如「c:\ anything」。

要知道到底是怎麼回事錯了,我建議運行進程監視器,你可以在這裏下載:http://technet.microsoft.com/en-us/sysinternals/bb896645

它易於使用,唯一討厭的就是事物的數量龐大的它觀察你的系統上。爲了解決這個問題,請右鍵單擊「混亂」條目(在捕獲窗口中)並選擇將其過濾掉。它允許過濾器(即myWPFapp.exe)或活動類型,在這種情況下,您希望監視文件系統(顯然)。

一旦你捕獲了事件,並且你已經過濾它,所以它不能快速填滿窗口,只需運行你的應用程序。您會看到任何對硬盤驅動器及其嘗試使用的文件夾的訪問失敗。

祝你好運。

相關問題