IIS 7.5 文件夹和网站权限

Raz*_*zor 3 permissions iis-7.5 windows-server-2008-r2

情况:

  • 在 IIS 服务器管理器中创建的测试网站
    • 基本设置/连接为:应用程序用户
    • 身份验证/匿名身份验证/编辑:应用程序池身份
  • 物理路径具有“IIS AppPool\DefaultAppPool”读取和执行,列出文件夹内容和读取权限(加上具有继承的完全控制权的管理员/系统)
    • 包含单个文件 index.html(加上使用上述设置生成的 web.config)

错误:

  • HTTP 错误 500.19 - 内部服务器错误
  • Config Error 由于权限不足无法读取配置文件

问题:

  • 如何使其与应用程序标识一起使用?(在匿名身份验证和物理文件夹的 rx 权限下使用 iusr 使其工作)
  • 我做错了吗,或者这确实是我发现的大多数资源似乎建议的最佳实践?

我也非常感谢关于 IIS 7.5“基础”的任何好的教程- 我一直无法在 learn.iis.net 和其他几个站点上找到这个特定问题的答案,并且通常发现那里可用的资源非常零散。

相关: IIS 7.5 网站目录权限Windows Server 2008 R2 - IIS7.5 - 网站权限

Kev*_*Kev 6

如果您使用通常的 IIS7.5 开箱即用默认值创建了网站,那么您的“测试网站”也将为其创建一个应用程序池。

站点将按原样执行请求的默认标识ApplicationPoolIdentityApplicationPoolIdentity是一个特殊的合成帐户,它是动态创建的,代表您站点的应用程序池的身份。

你说:

物理路径已读取并执行“IIS AppPool\DefaultAppPool”

这将解释您收到500.19错误的原因。除非您将站点分配给“DefaultAppPool”应用程序池,否则此权限将没有任何用处。

您需要分配ApplicationPoolIdentity站点的(至少)读取和执行权限。为此,请从命令行执行以下操作:

icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)
Run Code Online (Sandbox Code Playgroud)

<app_pool_name>为您的测试站点创建的应用程序池的名称在哪里。您可以通过执行以下命令找到它的名称:

appcmd list app /site.name:"<your site name>"
Run Code Online (Sandbox Code Playgroud)

这将返回类似的内容并显示您站点的应用程序池的名称(ApplicationPoolIdentity以以下名称命名:

APP "test site/" (applicationPool:test site)
Run Code Online (Sandbox Code Playgroud)