问题描述
在我的Asp.net网站上,在具有相同功能(相同代码)的生产服务器上,有时会出现如下所述的错误。
但是我并非总是会收到此错误,如果它的文件夹权限问题,那么这个问题应该总是出现。但是它是随机产生的。 一段时间后,如果我们再试一次,它将没有任何问题。不确定造成这种随机性的原因是什么。
在测试和UAT环境中完全相同的代码。
CrystalDecisions.Shared.CrystalReportsException:加载报告失败。 ---> System.Runtime.InteropServices.COMException:访问被拒绝。在 CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath,Int32选项),网址为 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath,Int32选项),网址为 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
private byte[] GetPdf(DataTable dt)
{
using (ReportDocument cryRpt = new ReportDocument())
{
byte[] byteArray = null;
try
{
if (dt.Rows[0]["Id"].ToString() == "1" )
cryRpt.Load(Server.MapPath("~/Main/RPT/Sample.rpt"));
else if (dt.Rows[0]["Id"].ToString() == "2")
cryRpt.Load(Server.MapPath("~/Main/RPT/Oform.rpt"));
cryRpt.Database.Tables[0].SetDataSource(dt);
ExportOptions CrExportOptions;
diskFileDestinationoptions CrdiskFileDestinationoptions = new diskFileDestinationoptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
ExcelDataOnlyFormatOptions CrExcelFormatTypeOptions = new ExcelDataOnlyFormatOptions();
string fileName;
byte[] bytes;
CrExportOptions = cryRpt.ExportOptions;
{
CrExportOptions.ExportDestinationType = ExportDestinationType.diskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.Destinationoptions = CrdiskFileDestinationoptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
}
System.IO.Stream oStream = null;
oStream = cryRpt.ExportToStream(ExportFormatType.PortableDocFormat);
byteArray = new byte[oStream.Length];
oStream.Read(byteArray,Convert.ToInt32(oStream.Length - 1));
}
catch (Exception ex)
{
WriteFile(ex.ToString());
}
finally
{
cryRpt.Close();
cryRpt.dispose();
}
return byteArray;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)