【发布时间】:2019-09-10 12:32:48
【问题描述】:
我正在编写一个 Wix 工具集安装程序,以在 Windows Server 2016 上的 IIS 中安装 Angular + asp.net 核心应用程序。我创建了一个新网站和一个新应用程序池。我想在新创建的网站文件夹路径上授予应用程序池标识的完全权限。 我按照这里给出的步骤操作:https://www.codeproject.com/Articles/115036/Creating-WIX-Installer-for-ASP-NET-Web-Application?所以我有 3 个文件:
- Setup.wxs
- IISConfiguration.wxs
- 网站内容.wxs
我在 IISConfiguration.wxs 中设置了网站和权限。
<DirectoryRef Id="WEBSITE">
<Component Id="WebSiteSiteNameCmp" Guid="{ED376FD7-D4DB-4675-8BF4-1DCC1AF1C66B}" KeyPath="yes" >
<iis:WebSite Id="WebSiteName"
Description='WebSiteName'
Directory="WEBSITE"
AutoStart="no"
ConfigureIfExists="yes"
StartOnInstall="no" >
<iis:WebAddress Id="WebSiteAdressHttps" Port="443" IP="*" Secure="yes"/>
<iis:WebAddress Id="WebSiteAdressHttp" Port="80" IP="*" Secure="no"/>
<iis:WebDirProperties Id="WebSiteProperties" AnonymousAccess="yes"
BasicAuthentication="no" WindowsAuthentication="no" />
<iis:WebApplication Id="WebSiteNameSite" Name="WebSite" WebAppPool="WebSiteAppPool" />
</iis:WebSite>
</Component>
<!-- Configuring app pool -->
<Component Id="WebSiteAppPoolCmp" Guid="{009052A8-19AE-452e-AE34-6DC8E929DA08}"
KeyPath="yes" Permanent="yes" Win64="yes">
<iis:WebAppPool Id="WebSiteAppPool" Name="WebSiteAppPoolName" ManagedPipelineMode="integrated" />
</Component>
<Component Id="WebSitePermissionCmp" Guid="{4425EFB0-A580-44B7-9C04-54EBD2E4ECB1}">
<CreateFolder>
<util:PermissionEx User="IIS AppPool\WebSiteAppPoolName" GenericAll="yes"/>
</CreateFolder>
</Component>
</DirectoryRef>
但随后安装程序回滚,因为在尝试设置文件夹权限时尚未创建 AppPool。我的日志中有以下错误:
ExecSecureObjects: Error 0x80070534: failed to get sid for account: IIS AppPool\WebSiteAppPoolName.
我应该怎么做才能在“好”的时候设置权限?
【问题讨论】:
-
听起来好像在 premisseionex 尝试授予权限时尚未创建应用程序池。你检查过你的脚本是否能够创建一个新的应用程序池吗?stackoverflow.com/questions/13668777/…
-
如果我删除组件“WebSitePermissionCmp”。安装完成没有问题,应用程序池已创建。我尝试在“WebSiteSiteNameCmp”中设置应用程序池组件,但我仍然有相同的回滚并出现相同的错误:ExecSecureObjects:错误 0x80070534:无法获取帐户的 sid:IIS AppPool\WebSiteAppPoolName。
-
我做了很多研究,但到目前为止我还没有找到解决方法。您是否尝试过使用特定用户而不是应用程序池身份?
-
我希望我能做到这一点,但是安装程序适用于具有相同数量的不同服务器的多个客户端。我不知道任何用于安装的凭据。
-
是否可以在 wix 工具集中创建一个用户来管理应用程序池? wixtoolset.org/documentation/manual/v3/xsd/util/user.html