Crystal Reports 2008 InprocServer + TempDir ="尚未实现操作"

时间:2020-03-05 18:51:35  来源:igfitidea点击:

我有一个使用CR 2008进行报告的.NET Web应用程序。部署该服务器的服务器已装有McAfee,我们希望告诉CR使用Windows临时目录以外的临时目录。

Google为我找到了以下注册表项:

SOFTWARE \ Business Objects \ Suite 12.0 \ Report Application Server \ InprocServer \ TempDir。

添加此密钥确实会导致CR在我指定的目录中创建一堆临时文件。但是,在报表运行结束时,出现"尚未实施的操作"异常。

我正在尝试通过ExportToHttpRequest()将PDF返回到浏览器,如果我不更改进程内服务器的tempdir,它就可以正常工作。

有人遇到过吗?我已经给本地ASPNET帐户完全控制新的tempdir。

谢谢。

解决方案

回答

我使用CR的年限比我想使用的要长,但从来不必指定其他临时文件夹。我们有什么具体原因吗?我不知道IIS进程是否可以"简单地"访问它。

硬盘中的"其他"临时目录是什么,或者更好,"它在哪里"是什么?

回答

在IIS5下,我们也尝试过这种方法。尝试设置TempDir注册表项后,遇到相同的问题。尽管所有其他报告导出(显然)都可以工作,但是PDF导出开始失败。

但是,在运行IIS6的客户端站点上,将临时文件重定向到专用目录的效果很好。默认情况下,Crystal Reports在其站点上使用目录

C:\ Program Files \ Business Objects \ BusinessObjects Enterprise 11.5 \ Data

作为其临时存储位置,并赋予ASP.NET帐户足够的特权以在其中创建和删除文件。因此,也许有些硬性逻辑要求在CR安装目录层次结构中创建文件。换句话说,在IIS6下安装CR后,默认情况下所有这些工作均按预期进行。

对于版本12,显然目录会稍有不同。

回答

C:/ windows / temp以外的其他临时目录应位于网站的虚拟目录中。只需在网站目录中添加该临时文件夹,并在其虚拟路径上将其托管在IIS上时,它便会自动包含在内。如果要在其他位置(例如D:/ CrystalTEmp)进行创建,则需要将此文件夹添加到Inetmgr中,只需右键单击该目录并启用其Web共享。是的,我们需要授予网络服务对此临时文件夹的完整权限。

如果将网站目录放置在inetpub / wwwroot中,则无需授予网络服务权限。