Access to report file denied. Another program may be using it.(水晶报表导出PDF时的错误)

woodyy 2008-11-10 05:29:05
ReportDoc.Load(Server.MapPath("../Report") + "\\CrystalReport2.rpt");

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Buyautomation;User ID=sa;Password=123456");
SqlCommand comm = new SqlCommand("SELECT * FROM View_tbOperate", conn);
SqlDataAdapter adapter = new SqlDataAdapter();
if (conn.State == ConnectionState.Closed) conn.Open();

// get data from db
DataSet2 ds = new DataSet2();
adapter.SelectCommand = comm;
adapter.Fill(ds, "View_tbOperate");
conn.Close();

// set data to report
ReportDoc.SetDataSource(ds);
ReportDoc.Refresh();

// set output type "pdf"
ReportDoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
ReportDoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

CrystalDecisions.Shared.DiskFileDestinationOptions options = new CrystalDecisions.Shared.DiskFileDestinationOptions();
options.DiskFileName = Server.MapPath("../DOC") + "\\Chap0101.pdf";
ReportDoc.ExportOptions.DestinationOptions = options;

FileLockedThenWait(Server.MapPath("../DOC") + "\\Chap0101.pdf");
if (File.Exists(Server.MapPath("../DOC") + "\\Chap0101.pdf"))
{
File.Delete(Server.MapPath("../DOC") + "\\Chap0101.pdf");
}
ReportDoc.Export();
//set data to view
//this.CrystalReportViewer1.ReportSource = ReportDoc;


代码是没问题的,路径也没问题,我之前用的绝对路径。
最后一行如果不注释是可以显示出来报表的。
可是为什么导出PDF的时候就出那样的错误呀。

Access denied.
Error in File C:\WINDOWS\TEMP\CrystalReport2 {224FCD06-3376-4BBB-B1A7-0CA9E6486270}.rpt:
Access to report file denied. Another program may be using it.

头大,搜索了一天也没解决,有人说是权限的问题,我已经把那个DOC文件夹加上了ASPNET所有权限,
不行,也加了一个EYERYONE所有权限,还是不行。到底啥原因呀。

救救我呀~~
...全文
251 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamxia8 2012-08-07
  • 打赏
  • 举报
回复
到现在也没有解决方案吗
guoweidong 2011-02-22
  • 打赏
  • 举报
回复
我今天也出现和你一样的问题,以前都运行正常,搞不清楚!
sa2q1200421 2010-05-21
  • 打赏
  • 举报
回复
阿泰 今天搜索做水晶报表,搜索这些,发现你好多贴哦,
woodyy 2008-11-11
  • 打赏
  • 举报
回复
阿泰,我重启了,给temp加上了EVERYONE,全部权限了。

可是又出现这样的问题了

Access to the path 'H:\TestPDF1\WEB\DOC' is denied.
可是这个文件夹我已经都加上everyone和aspnet了的所有权限了呀。

到底啥问题呀???????????????????????????????
欲哭无泪呀
guojh021 2008-11-10
  • 打赏
  • 举报
回复
顶阿泰
阿泰 2008-11-10
  • 打赏
  • 举报
回复
还有,服务器的temp目录也要给everyone 可写权限。
阿泰 2008-11-10
  • 打赏
  • 举报
回复
重新启动机器后,不要启动水晶报表,把temp目录全部清空掉
然后再试

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧