我正在尝试使我的 IIS 服务器更安全,并锁定了各个应用程序文件夹,以便只有相关的 AppPool 可以访问它们。AppPool 已被授予读取权限,但我也尝试过读写权限。我还将 wwwroot 移到了另一个驱动器。
除非我指定域管理员帐户作为 AppPool 身份,否则我会收到以下有关 webconfig 文件不可读的错误。
An error occurred loading a configuration file: Failed to start monitoring changes to 'D:\wwwroot\web.config' because access is denied.
我可以通过这样做来解决这个特定的错误:
- 在 IIS 中右键单击应用程序池,选择
Advanced Properties
。在ProcessModel
->下Identity
,选择Identity
。 - 选择
Custom Account
- 切换到使用自定义域帐户,该帐户是此计算机的管理员,也是托管虚拟目录的计算机的管理员。
- 重启应用程序池
问题是,现在我的网站查看当前登录的用户时,看到的是应用程序池中指定的域帐户,而不是登录的用户。
无论如何,如果我要用应用程序池中的域管理员帐户覆盖它,那么在我的应用程序文件夹上设置 NTFS 权限似乎有点毫无意义。
有什么建议么?
答案1
我已通过授予该servername\IIS_IUSRS
组对 wwwroot 目录及其所有子文件夹的读取权限来解决这个问题。这可能会使我的安全改进失效,但它可以发挥作用,所以没关系
答案2
我为此奋斗了四天...我到处寻找坏的 web.config 文件、坏的权限,等等...对我来说,解决方案是安装 .Net Framework 4.7.2 而不是 4.6.1,就像我一直做的那样,这是 Exchange 安装前的准备工作的一部分。
将.Net Framework 更新至 4.7.2 版本!