3

最近我正在通过网络表单从 Crystal Reports 生成 PDF。它失败了,我确定这是由 c:\windows\temp 目录上的权限设置引起的。我授予网络服务帐户对此文件夹的完全访问权限,从而迅速解决了问题。但是网络服务帐户默认没有这些权限是有原因的吗?

Rick Strahl在这里提出了这个问题。听起来这样做不应该有任何问题,但 Rick 并不清楚为什么会这样设置默认值。

Web 服务器是 Windows Server 2003

4

3 回答 3

1

如今,默认选项往往更安全。我不认为有任何其他原因。

我和你有同样的问题,在我的环境中只是给予许可并继续前进。

这篇文章表明这​​是 Crystal Reports 的错,它明确引用了 %WINDIR%\Temp 而不是使用诸如 Path.GetTempPath() 之类的 API。事实上,当在 Windows 2003 上的网络服务帐户下运行时,我已经看到 Path.GetTempPath() 返回 %WINDIR%\Temp。

于 2008-10-03T17:42:05.330 回答
1

这篇关于创建临时文件的帖子有支持使用 Windows 临时文件夹的评论。

一篇关于使用网络服务帐户的 msdn文章指出“如果您的 ASP.NET 应用程序需要使用其他位置的文件或文件夹,则必须专门启用访问权限”这告诉我,对临时文件夹的默认限制不是因为temp 文件夹被单独挑出,但默认情况下,除了 IIS 根文件夹之外的所有其他位置都受到限制。

于 2008-10-07T20:41:39.193 回答
0

%windows%\temp不适用于一般的临时和呕吐。很明显,Crystal Reports 正在滥用该目录。当开发人员懒得用管理员帐户以外的任何东西启动他们的机器时,这种情况经常发生。

每个用户(包括网络服务)在Documents & Settings下都有自己的临时空间,具有完全访问权限。获胜者的行为不像 CR,而是使用自己的临时空间。

简而言之,win\temp 上的默认权限没有任何问题。我相信它只是用于 Windows 的内部工作。(再说一次,如果那个目录从一开始就不存在,对每个相关的人都会好得多。)

于 2008-10-05T17:38:42.777 回答