今天在报表导出测试时遇到这个问题 拒绝访问报表文件。其他程序可能正在使用它 搜了下查到是这个问题
给windows temp目录 加上 NETWORK SERVICE ASPNET 读写权限就可以了
在Windows XP / Windows Server 2003下开发asp.net程序,有细微区别,尤其体现在运行asp.net程序的帐号与权限分配上,以水晶报表运行时常出的错误为例:
异常详细信息: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: 文件 C:/WINNT/TEMP/temp_6516f6db-0f2c-4ed4-8e26-2cf6b2ff5bf9.rpt 内出错:拒绝访问报表文件。其他程序可能正在使用它。
此问题是因为目标目录C:/WINNT/TEMP对于asp.net程序不可写造成的,解决办法将目录C:/WINNT/TEMP的写权限赋予运行asp.net的windows用户帐号即可,对于windows xp,将写权限赋给帐号ASPNET;而对于windows server 2003,则是将写权限赋给帐号ASPNET和NETWORK SERVICE。
以后,在考虑windows server 2003下运行asp.net程序的用户权限问题时,不要忘了NETWORK SERVICE,而不仅是ASPNET而已。