我有一个.NET web应用程序,它使用CR2008的报告。部署它的服务器上安装了McAfee,我们希望告诉CR使用临时目录而不是Windows临时目录。
Google给我找到了以下注册表项:
SOFTWARE\Business Objects\Suite 12.0\Report Application Server\InprocServer\TempDir。
添加这个键会导致CR在我指定的目录中创建一堆临时文件。但是,在报告运行结束时,我得到了一个"Operation not implemented“异常。
我正在尝试通过ExportToHttpRequest()向浏览器返回一个PDF,如果我不更改进程内服务器的tempdir,它就可以很好地工作。
以前有没有人遇到过这种情况?我已经给了本地ASPNET帐户对新tempdir的完全控制。
谢谢。
发布于 2009-11-05 15:34:54
C:/windows/temp以外的其他临时目录应位于网站的虚拟目录中。只需将temp文件夹添加到您网站目录中,当您将其虚拟路径设置为IIS上的宿主时,它将自动包含在内。如果你想在D:/CrystalTEmp这样的其他地方创建它,你需要在你的Inetmgr中添加这个文件夹,只需右键单击这个目录并启用它的web共享。是的,您需要授予Network service对此临时文件夹的完全权限。
如果你把你的网站目录放在inetpub/wwwroot中,那么你不需要赋予网络服务的权限。
发布于 2008-09-12 09:32:49
我使用CR的时间比我想要的要长,但从来没有指定过不同的临时文件夹。你有什么具体的原因吗?我不知道IIS进程是否可以“简单地”访问它。
什么是“其他”临时目录,或者更好的是,在硬盘中的“它在哪里”?
发布于 2009-09-08 12:38:26
在IIS5下,我们已经尝试了这一点,但也没有效果。在尝试设置TempDir注册表项后遇到相同的问题。PDF导出开始失败,尽管所有其他报告导出(显然)工作。
但是,在运行IIS6的客户端站点上,将临时文件重定向到专用目录的操作很好。默认情况下,Crystal Reports在其站点上使用目录
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Data
作为其临时存储位置,并为ASP.NET帐户提供足够的权限以在该位置创建和删除文件。因此,可能有一些硬性逻辑要求在CR安装目录层次结构中创建文件。换句话说,在IIS6下安装CR后,默认情况下这一切都能正常工作。
对于版本12,目录显然会略有不同。
https://stackoverflow.com/questions/56926
复制相似问题