Это круто, исправил много. Большое спасибо @Ян Скляренко!
овляю один из наших установщиков для .NET 4.0 и IIS 7.5, и одна из задач состоит в том, чтобы переключить AppPool, чтобы использовать его собственную идентификацию. Я нашел это довольно тривиальным в WiX с использованием IIS Extension, но я борюсь с двумя дополнительными наборами разрешений, которые мы определяем, в частности, для предоставления разрешений на запись для идентификатора 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, чтобы веб-приложение могло выполнять запись в каталог журналов? Нужно ли использовать другую личность?