IIS 7.5文件夹和网站的权限

情况:

  • 在IIS服务器pipe理器中创buildtesting网站
    • 基本设置/连接为:应用程序用户
    • authentication/匿名authentication/编辑:应用程序池标识
  • 物理path有“IIS AppPool \ DefaultAppPool”读取和执行,列出文件夹内容和读取权限(加上pipe理员/系统inheritance完全控制)
    • 包含单个文件,index.html(加上生成的web.config与上述设置)

错误:

  • HTTP错误500.19 – 内部服务器错误
  • configuration错误由于权限不足,无法读取configuration文件

问题:

  • 我如何使它与应用程序标识一起工作? (得到它使用iusr在匿名身份validation和物理文件夹的rx权限下工作)
  • 我是否做错了,或者这确实是最好的做法,因为我发现的大部分资源似乎都build议?

我也非常感谢IIS 7.5的“基础知识”的任何好的教程 – 我一直无法find答案learn.iis.net和其他几个网站上的这个具体问题,通常发现那里的资源非常分散。

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

如果您使用通常的IIS7.5开箱即用的默认设置创build了网站,那么您的“testing网站”也会为其创build一个应用程序池。

该站点将执行请求的默认标识为ApplicationPoolIdentityApplicationPoolIdentity是一个特殊的综合账户,它是在运行中创build的,代表您的站点应用程序池的身份。

你说:

物理path有“IIS AppPool \ DefaultAppPool”读取和执行

这将解释你为什么得到500.19错误。 除非您将站点分配给“DefaultAppPool”应用程序池,否则此权限将不会起任何作用。

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

 icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M) 

其中<app_pool_name>是为您的testing站点创build的应用程序池的名称。 您可以通过执行以下命令来查找其名

 appcmd list app /site.name:"<your site name>" 

这将返回类似的东西,并显示您的网站的应用程序池的名称( ApplicationPoolIdentity的名称是:

 APP "test site/" (applicationPool:test site)