2

我正在尝试为在 IIS 7 上运行的 Web 应用程序设置权限,以便其他 Web 应用程序无法访问它。

我首先将其设置为在我自己命名的应用程序池下运行MyAppsPoolName2,如下所示ApplicationPoolIdentity

在此处输入图像描述

启用匿名身份验证并设置为使用应用程序池身份:

在此处输入图像描述

之后,我将 ACL 权限配置为:

我的 Web 应用程序的根文件夹:“C:\inetpub\www_test1”设置了以下权限:

  • 允许 FILE_GENERIC_READ 到IIS AppPool\MyAppsPoolName2
  • 拒绝 FILE_ALL_ACCESSIUSR
  • 拒绝 FILE_ALL_ACCESSIIS_IUSRS

因此,在 IIS 中安装并启动我的网站后,我收到以下错误:

HTTP 错误 500.19 - 内部服务器错误 无法访问请求的页面,因为该页面的相关配置数据无效。

在此处输入图像描述

知道如何解决这个问题吗?

4

1 回答 1

0

我没有专门测试过这个,但我相信它会起作用。

将您的应用程序池配置为使用 AppPool 标识。更改您的匿名用户身份以使用您创建的帐户。将 web.config 上的读取权限授予 AppPool 身份并拒绝访问匿名用户身份。

这应该为您提供工作进程进程令牌的 AppPool 身份,我相信在读取 web.config 文件时它会有效。在请求期间,匿名用户将用作拒绝访问 web.config 文件的线程令牌。

您也可以依赖 IIS 默认不会提供 web.config 文件这一事实。

于 2013-10-16T06:44:45.717 回答