【问题标题】:IIS Application Pool Identity permissions reset on every Visual Studio app Publish在每个 Visual Studio 应用发布上重置 IIS 应用程序池标识权限
【发布时间】:2019-07-21 13:25:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp.net-mvc iis permissions applicationpoolidentity visual-studio-publish


    【解决方案1】:

    据我所知,如果您使用 Visual Studio 中的 Web 部署,则发布将通过将服务器上的 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>
    

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

    【讨论】:

    • 谢谢,这解决了问题。现在,权限在发布后仍然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2012-07-03
    • 2011-01-07
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多