Разрешения удостоверений пула приложений IIS сбрасываются при каждой публикации приложения Visual Studio
Следуя инструкциям в этих вопросах, я могу успешно изменить разрешения для удостоверения пула приложений.
Однако после публикации веб-приложения...
Идентификаторы пула приложений были сброшены до значения "Только чтение".
Как я могу дать удостоверению пула приложений полные разрешения даже после повторной публикации веб-приложения? Такое же поведение также происходит, если я даю IUSR полные разрешения.
1 ответ
Насколько я знаю, если вы используете Web Deploy из Visual Studio, публикация перезапишет ACL на сервере, очистив их от унаследованных родительских настроек по умолчанию.
Чтобы избежать обновления ACL каждый раз, когда вы публикуете свое веб-приложение.
Вы можете попробовать добавить приведенную ниже команду в pubxml вашего PublishProfiles.
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
Детали публикуют профиль, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>http://localhost:9825/</MSDeployServiceURL>
<DeployIisAppPath>WebFormApplication</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName />
<_SavePWD>False</_SavePWD>
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="DefaultConnection" Order="1" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBContext" DbContext="WebFromIdentityTest.Models.ApplicationDbContext, WebFromIdentityTest" Origin="Configuration" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
</ItemGroup>
</Project>
Тогда вы обнаружите, что разрешение не будет изменено после публикации приложения.