我正在尝试使我的 IIS 服务器更安全,并锁定了各个应用程序文件夹,以便只有相关的 AppPool 可以访问它们。AppPools 已被授予读取权限,但我也尝试过读取/写入权限。我还将 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 权限似乎也有点毫无意义。
有什么建议么?
我通过授予
servername\IIS_IUSRS
组对 wwwroot 目录和所有子文件夹的读取权限来解决此问题。这可能会使我的安全改进无效,但它使它起作用,所以没关系我为此奋斗了四天......我到处寻找糟糕的 web.config 文件,糟糕的权限,你的名字......我的解决方案是安装 .Net Framework 4.7.2 而不是 4.6.1,就像我一直做的那样Exchange 安装前准备工作的一部分。
将 .Net Framework 更新到 4.7.2 版本!