首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新创建的IIS AppPool标识的权限集

新创建的IIS AppPool标识的权限集
EN

Stack Overflow用户
提问于 2012-12-14 16:41:07
回答 2查看 2.1K关注 0票数 7

我需要为创建的IIS应用程序池设置日志文件夹的权限。设置权限的代码:

代码语言:javascript
复制
<CreateFolder Directory="SiteLogsFolder">
    <util:PermissionEx User="Everyone" Read="yes" GenericRead="yes"/>
    <util:PermissionEx User="[IisSiteUser]" GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes"/>
</CreateFolder>

<CustomAction Id="SetIis6SiteUser" Property="IisSiteUser" Value="NT AUTHORITY\NetworkService"/>
<CustomAction Id="SetIis7SiteUser" Property="IisSiteUser" Value="IIS AppPool\[SITE_APP_POOL]"/>

<InstallExecuteSequence>
  <Custom Action="SetIis7SiteUser" Before="InstallInitialize">IISMAJORVERSION>="#7"</Custom>
  <Custom Action="SetIis6SiteUser" Before="InstallInitialize">IISMAJORVERSION="#6"</Custom>
</InstallExecuteSequence>

此操作对于Windows Server 2003上的IIS 6很好,但对于Windows Server 2008上的IIS 7.5则失败。我知道错误:

代码语言:javascript
复制
ExecSecureObjects:  Error 0x80070534: failed to get sid for account: IIS AppPool\MyAppPool

调查详情:

  • 我也尝试过“”域-相同的结果。
  • 还尝试设置PermissionEx元素的域属性和用户属性,而不是在用户属性中合并它们。同样的错误。
  • 在PermissionEx中使用活动目录帐户很好。此外,活动目录帐户在设置IIS站点池时可以正常工作。
  • 如果我试图为另一个AppPool设置权限(而不是安装程序创建的权限,例如DefaultAppPool\DefaultAppPool),那么所有这些都可以正常工作。只有当我为AppPool设置权限时才会出现此问题,该权限由我的安装程序创建。
  • 我检查了ConfigureIIs、SchedSecureObjects和ExecSecureObjects的顺序,并试图在其他两个之前强制执行ConfigureIIs (推荐使用in this thread)。不幸的是,这也没有帮助。
EN

回答 2

Stack Overflow用户

发布于 2016-04-25 15:06:31

当我将我的WIX项目构建为x86时,我遇到了这个问题。我解决了这个问题,我把SchedSecureObjects和ExecSecureObjects排在了ConfigureIIs之前。

代码语言:javascript
复制
<Custom Action="SchedSecureObjects" After="ConfigureIIs" />
<Custom Action="ExecSecureObjects" After="ConfigureIIs" />

当我开始以x64的形式构建这个项目时,这个问题又出现了。这一次,我还必须在配置之前安排64位操作。

代码语言:javascript
复制
<Custom Action="SchedSecureObjects_x64" After="ConfigureIIs" />
<Custom Action="ExecSecureObjects_64" After="ConfigureIIs" />
<Custom Action="SchedSecureObjects" After="ConfigureIIs" />
<Custom Action="ExecSecureObjects" After="ConfigureIIs" />
票数 4
EN

Stack Overflow用户

发布于 2013-04-27 06:18:32

在服务器2012上进行测试时,我确认在帐户可用之前可能会出现延迟。使用下面的脚本,我复制了大约30次尝试中的3次失败。在创建应用程序池和查找SID之间,我们似乎需要一个延迟。在我的测试中,它从来不超过1秒。

代码语言:javascript
复制
param ($id)
if (!$id) {write-host "specify an id"; return}
c:\windows\system32\inetsrv\appcmd add apppool /name:$id /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
$objUser = New-Object System.Security.Principal.NTAccount("IIS APPPOOL\$id")
$sid=""
while (!$sid)
{
  $sid = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
  if (!$sid) {write-host "$id not found"} else {$sid}
  sleep 1
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13882802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档