|
-
June 21st, 2010, 03:30 AM
#1
[RESOLVED] Crystal Reports: Load report failed (access is denied)
Hi guys,
I recently deployed crystal reports for VS2010 to my production server. I worked fine for a while and suddenly it started to fail with the exception details: "System.Runtime.InteropServices.COMException: Access is denied." and the following stack trace.
Code:
[COMException (0x80004005): Access is denied.]
CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +94
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +374
[CrystalReportsException: Load report failed.]
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +436
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +877
CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName, OpenReportMethod openMethod, Int16 parentJob) +1185
CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport() +108
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type) +53
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet) +66
AdNexus.RG_Cockpit.Website.earnings.cr_report.Report.GetReport(Int32 rn_number, Boolean lifetime, Int32 weekNumber) in D:\projects\adnexus\AdNexus\AdNexus.RG_Cockpit.Website\earnings\cr_report\Report.cs:123
AdNexus.RG_Cockpit.Website.earnings.cr_report.report.Page_Load(Object sender, EventArgs e) in D:\projects\adnexus\AdNexus\AdNexus.RG_Cockpit.Website\earnings\cr_report\report.aspx.cs:39
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
After doing some research, I found out that there were temp files created in C:/windows/temp. I changed this directory to a directory in the website itself. I also made sure that all reports where disposed correctly. I watched the temp folder, and all temp files were deleted correctly.
Now, after a few days, the same error starts happening again. Taking a look in the temp folder, a lot of temp files where not deleted. I deleted all files in the temp folder, run a report in the browser while watching the temp folder. The exception happens again, and I can see that a temp file is generated but not deleted.
What is causing the access denied then? It seems that it creates the temp file, cannot open it, the exception is thrown and finally the temp files are not deleted. But why are the files deleted in the beginning, and after a while not?
Any one any ideas how to solve this?
-
June 25th, 2010, 04:47 AM
#2
Re: Crystal Reports: Load report failed (access is denied)
I think I found the error of the problem.
The first thing that could be part of the problem: I was not disposing the DataSet that was used to create the report.
Second thing: The CR was showing data from a 3rd party reporting webservice. Because this reporting service is not really fast, I decided to cache te reports after the first call. To prevent the user from waiting when they first visit the page, I created a Windows Service that makes a HttpWebRequest to that page (and thus loads the report for the first time and the CR).
I changed this, and now since the Windows Service is not making any HttpRequests to the page, no error has occured for a day now.
So I guess it's solved
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|