1

按照此问题中的说明,我可以成功更改应用程序池身份的权限

在此处输入图像描述

但是,在我发布网络应用程序后...

在此处输入图像描述

应用程序池标识已重置为只读

在此处输入图像描述

即使在我重新发布 Web 应用程序后,我如何才能为应用程序池标识提供完全权限?如果我授予 IUSR 完全权限,也会发生相同的行为。

4

1 回答 1

2

据我所知,如果您使用 Visual Studio 中的 Web 部署,则发布将通过将 ACL 清除为父级的继承默认值来覆盖服务器上的 ACL。

避免每次发布 Web 应用程序时都更新 ACL。

您可以尝试在 PublishProfiles 的 pubxml 中添加以下命令。

 <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>

然后你会发现发布应用后权限不会改变。

于 2019-02-28T02:10:54.247 回答