所以,让我把这个免责声明放在第一位:我通常不会在域控制器上捎带IIS,但这就是我所得到的,在这种情况下我不能改变它。
我有一个WCF的Web服务,我需要在这里举办。 我希望能够使用IIS中的应用程序池标识来授予文件系统权限以及组件服务中的启动和激活权限。 当我通过尝试select“IIS AppPool \ DefaultAppPool”浏览它时,我无法find该帐户。
有谁知道这是甚至可能在2008R2域控制器上?
通过Windows 2008R2上的用户界面授予应用程序池标识的权限可能有点不太现实,但可以使用一些命令行工具来实现。
NTFS权限:
使用ICACLS命令行工具来设置NTFS权限:
icacls c:\wwwroot /grant "IIS AppPool\DefaultAppPool":(CI)(OI)(M)
以上configurationDefaultAppPool身份具有文件和文件夹inheritancec:\wwwroot上的修改权限。 在UI中看起来像:

并在权限下高级用户界面:

DCOM启动和激活和访问权限:
同样,当涉及IIS AppPool\<ident>帐户时,用户界面可能会有些h and,而且没有内置的命令行工具来configuration启动和激活权限和访问权限 。 您可以尝试在registry中设置这些值,但除非您知道如何为LaunchPermission和LaunchPermission创build序列化ACL, LaunchPermission将很难。
尽pipe如此 有一个名为dcomperm.exe的工具,作为Microsoft Windows SDK for Windows 7和.NET Framework 4中的示例项目。
这个章节已经在这里写了:
更接近于使用DcomPerm.exe进行100%脚本化SharePoint安装的另一步
您可以尝试自己构build,也可以从Microsoft Live SkyDrive 下载预构build的二进制文件 。
要使用dcomperm.exe ,您需要知道您的DCOM应用程序的AppID 。 您可以通过在应用程序的DCOMconfiguration属性的“常规”选项卡中find它来执行此操作。 例如,我select了IIS CertObj库作为工作示例。

您可以将光标放在“应用程序ID”字段中,并select整个字段,并确保包含大括号。
接下来打开命令行提示符(以Administrator身份运行)。 要授予您执行的应用程序池标识本地启动和本地激活权限:
DComPerm.exe -al {62B8CCBE-5A45-4372-8C4A-6A87DD3EDD60} set "IIS AppPool\DefaultAppPool" permit level:ll,la
哪里:
-al =修改或列出启动和激活权限
{62B8CCBE-5A45-4372-8C4A-6A87DD3EDD60} =我们从DCOMCNFG UI复制的应用程序ID
set "IIS AppPool\DefaultAppPool" =设置这个标识
permit =设置许可标志
ll =本地启动
la =本地激活
这在UI中看起来如下所示:

看起来,如果您运行的是早于2008年的域function级别,则无法从GUI中parsing内置的IIS帐户。
将域function级别提升到至less2008年,或者尝试运行Microsoft提供的KB946139的JScript
另外请注意不推荐在域控制器上运行的Web应用程序,这里有几个原因: http : //blogs.technet.com/b/abizerh/archive/2009/07/16/should-iis-be-installed-on-域controller.aspx
这是关于IIS 6 / Windows 2k3的问题,但其中一些仍然成立,例如。 DCPROMO问题