我在 Windows 2008 r2 上运行 Bugzilla 4.4.5,系统为 IIS 7.5。我的 Index.cgi 路径是 C:\Inetpub\wwwroot\bugzilla-4.4.5
我使用的 URL 是http://localhost/bugzilla
我可以启动网站并登录,但是当我编辑参数并单击“保存”时,我收到此消息:
Software error:
Error in tempfile() using template data\params.XXXXX: Could not create temp file data\params.I19Ig: Permission denied at Bugzilla/Config.pm line 270.
For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.
[Wed Sep 17 13:14:16 2014] editparams.cgi: Error in tempfile() using template data\params.XXXXX: Could not create temp file data\params.I19Ig: Permission denied at Bugzilla/Config.pm line 270.
我在其上运行了进程监视器(来自 sysinternals)并注意到以下有趣的一行:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"12:11:37.2166449 PM","w3wp.exe","1172","CreateFile","C:\Inetpub\wwwroot\bugzilla-4.4.5\editparams.cgi\web.config","PATH NOT FOUND","Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a"
对于我需要改变什么,您有什么想法吗?
ETA:我已验证 IUSR 对所有文件夹、子文件夹和文件的权限为完全控制。未进行任何更改。
它不起作用。
答案1
在 IIS 中,导航到站点(或应用程序,如果已将其设置为应用程序)的设置,然后在功能视图中打开 CGI 功能。
改变Impersonate User
错误的,然后重新启动 IIS(或网站)
无论您的应用程序池设置如何,CGI 设置都会强制 Perl 使用没有权限的用户帐户。这为我解决了这个问题。