您的位置:首页 > 其它

临时文件未清理导致水晶报表周期性打开报表失败

2010-11-17 09:59 363 查看
转自:http://www.cnblogs.com/babyt/archive/2008/02/20/1075205.html 作者:babyt

故障描述:
VS2005的水晶报表在WEB应用程序中多次使用后,就会出现加载报表失败.重启WEB服务器又正常了.过一段时间又出同样问题

用户使用水晶报表的时候出现加载报表错误.
刚开始用户使用非常正常,但使用一天(该用户使用报表频率非常大)就会出现"报表加载失败",然后用户重启服务器这后又可以了

我发现在C:/WINDOWS/Temp这个临时文件里面有大量的水晶报表文件,每使用一次就会生成几个文件,
在电脑没有重新启动的情况下它不会被删除,而出现大量的无用文件,

在google里面搜了一圈发现也有人碰到这样的情况但回答的很模糊只是说要将水晶报表装载的文档关闭掉,
从这里可以看出出现这样的错误应该是程序员人为照成的.

具体解决如下:
1.ReportDocumen实例必须为类成员

private ReportDocument prtp = new ReportDocument();

2.使用完水晶报表必须关闭文件,这样子就不会在windows的临时文件里面产生.

private void Page_Unload(object sender, EventArgs e)
{
prtp.Dispose();
}

Page_Unload 事件是在页面完全显示的时候运行,这样子就解决了.

按照此方法,导入导出excel操作的类似问题应该也可以用这个方法解决。

ADD BY 玉开(http://space.cnblogs.com/question/2582

如果上面的方法无效试试修改临时文件的目录:
我的电脑上点右键,属性,高级,环境变量,更改当前用户的temp和tmp路径到指定位置,然后重新启动一下就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: