Я обновляю один из наших инсталляторов для .NET 4.0 и IIS 7.5, и одной из задач является переключение AppPool для использования его собственной идентичности.Я нашел это довольно тривиальным в WiX с использованием расширения IIS, но я борюсь с двумя дополнительными наборами разрешений, которые мы определяем, в частности, для предоставления разрешений на запись для идентификатора AppPool:
<Directory Id="LOGS_LOCATION" Name="logs">
<!-- SourceDir\logs -->
<Component Id="LogsFolder" Guid="{3A7C38C7-6604-4063-A425-D62427B21AEE}" KeyPath="yes" DiskId="1">
<CreateFolder>
<!-- SYSTEM account is automatically given access, but set other ACEs here to avoid Users having access -->
<Permission User="Administrators" GenericAll="yes"/>
<Permission User="[ASPNET_USER]" Domain="[ASPNET_DOMAIN]" GenericRead="yes" GenericWrite="yes" Read="yes" Delete="yes" DeleteChild="yes" Traverse="yes"/>
<!-- IIS5: ASPNET, IIS6: NetworkService, IIS7: AppPool identity -->
</CreateFolder>
</Component>
</Directory>
ASPNET_USER
и ASPNET_DOMAIN
определены как AppPoolName
и IIS APPPOOL
соответственно (где AppPoolName
точно соответствует названию пула приложений).
Когда я запускаю установщик, я получаю сообщение об ошибке 1609 о том, что IIS APPOOL\AppPoolName
не является действительным идентификатором, и установка завершается неудачно.Как указать идентификатор пула приложений для элемента Permission, чтобы веб-приложение могло выполнять запись в каталог журналов?Нужно ли использовать другую личность?