最近我正在通过网络表单从 Crystal Reports 生成 PDF。它失败了,我确定这是由 c:\windows\temp 目录上的权限设置引起的。我授予网络服务帐户对此文件夹的完全访问权限,从而迅速解决了问题。但是网络服务帐户默认没有这些权限是有原因的吗?
Rick Strahl在这里提出了这个问题。听起来这样做不应该有任何问题,但 Rick 并不清楚为什么会这样设置默认值。
Web 服务器是 Windows Server 2003
最近我正在通过网络表单从 Crystal Reports 生成 PDF。它失败了,我确定这是由 c:\windows\temp 目录上的权限设置引起的。我授予网络服务帐户对此文件夹的完全访问权限,从而迅速解决了问题。但是网络服务帐户默认没有这些权限是有原因的吗?
Rick Strahl在这里提出了这个问题。听起来这样做不应该有任何问题,但 Rick 并不清楚为什么会这样设置默认值。
Web 服务器是 Windows Server 2003
如今,默认选项往往更安全。我不认为有任何其他原因。
我和你有同样的问题,在我的环境中只是给予许可并继续前进。
这篇文章表明这是 Crystal Reports 的错,它明确引用了 %WINDIR%\Temp 而不是使用诸如 Path.GetTempPath() 之类的 API。事实上,当在 Windows 2003 上的网络服务帐户下运行时,我已经看到 Path.GetTempPath() 返回 %WINDIR%\Temp。
%windows%\temp不适用于一般的临时和呕吐。很明显,Crystal Reports 正在滥用该目录。当开发人员懒得用管理员帐户以外的任何东西启动他们的机器时,这种情况经常发生。
每个用户(包括网络服务)在Documents & Settings下都有自己的临时空间,具有完全访问权限。获胜者的行为不像 CR,而是使用自己的临时空间。
简而言之,win\temp 上的默认权限没有任何问题。我相信它只是用于 Windows 的内部工作。(再说一次,如果那个目录从一开始就不存在,对每个相关的人都会好得多。)