IIS_IUSRS 和 DefaultAppPool 权限不起作用

IIS_IUSRS 和 DefaultAppPool 权限不起作用

我正在 Windows Server 2012 R2 上的 IIS 8.5 上设置 PHP 应用程序。我之前已在多台 Windows Server 2008 R2 和 Windows Server 2012 计算机上成功设置了此应用程序,但这是我使用的第一台 2012 R2 计算机。

PHP 应用程序具有需要写入的目录logcache

在之前的所有机器上,我都将 PHP 网站设置为在默认应用程序池中运行,然后授予该IIS_IUSRS组读取整个网站和写入这些目录的权限。到目前为止,这在我之前使用过的所有服务器上都有效。

然而,在这个新服务器上,PHP 仍然说它没有权限写入所需位置。

我检查了任务管理器以确保 IIS 进程(和 PHP CGI 进程)以预期用户身份运行,发现它们以DefaultAppPool预期身份运行。但是,权限似乎不起作用。我尝试停止并重新启动 IIS、回收应用程序池以及将IIS AppPool\DefaultAppPool用户权限直接添加到文件夹,但这些都无济于事。

这是怎么回事?为什么在四台旧服务器上都运行正常,现在却不行了?

答案1

似乎存在某种文件系统级或操作系统级权限缓存,因为该问题似乎在系统完全重启后已自行解决(尽管重新启动 IIS(W3SVC)和回收应用程序池确实应该已经解决了这个问题)。

相关内容