asp.net - Crystal Report - 文件存在错误

标签 asp.net windows crystal-reports

我正在使用 Crystal Report(运行时版本 13.0.15)从 asp.net Web 应用程序生成 PDF 报告。在使用报告时,我随机收到一个 show stopper file-locked error-“System.IO.IOException-The file exists.”,之后我的报告都没有工作。但是应用程序运行良好。我进行了 IIS 重置,但问题存在。

然后我从“C:\Windows\Temp”文件夹中删除了临时文件,然后所有的报告都工作正常。

这是源代码,我用来生成报告。我没有使用 CR 查看器。所有报告都导出为 PDF。

var __reportData = GetData(filter);
ReportDocument rd = new ReportDocument();
try
{
rd.Load(rptFilePath);
rd.SetDataSource((System.Data.DataTable)__reportData);
System.IO.Stream oStream = null;
byte[] byteArray = null;
oStream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
byteArray = new byte[oStream.Length];
oStream.Read(byteArray, 0, Convert.ToInt32(oStream.Length - 1));
rd.Close();
rd.Dispose();
rd = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
catch (Exception ex)
{
    if (rd != null)
    {
        rd.Close();
        rd.Dispose();
        rd = null;
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
    }
    CrystalReportExceptionHandler.ShowError(ex, ex.Message);
}
finally
{
    if (rd != null)
    {
        rd.Close();
        rd.Dispose();
        rd = null;
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
    }
}

最佳答案

此异常记录在 .NET 中,并在临时目录达到 65535 个文件的限制时引发。

Azure Github example/link

关于asp.net - Crystal Report - 文件存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50906117/

相关文章:

c# - 文件夹浏览器列出 WPF 中的所有系统驱动器

windows - 查询映射网络驱动器

c# - 通过 StoredProcedure 进行每日/每周/每月记录计数搜索

asp.net - 如何在 ASP.NET 中使用 C# 代码以 PDF、HTML 和 DOC 格式导出 Crystal Report?

crystal-reports - Crystal 报表公式字段

c# - Page.IsValid 检查内部结构?

c# - 应用程序变量总是引用我的对象,我希望它保持 "copy"

java - 无法识别命令行 Ant

c - c中的windows异步串口通信

asp.net - JSON 可以调用 .aspx 文件中的方法,但不能调用 .asmx(ASP.NET Web 服务)文件中的方法