asp.net-mvc - 在每个 Visual Studio 应用程序发布上重置 IIS 应用程序池标识权限

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

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

enter image description here

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

enter image description here

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

enter image description here

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

最佳答案

据我所知,如果您使用 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>

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

关于asp.net-mvc - 在每个 Visual Studio 应用程序发布上重置 IIS 应用程序池标识权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54911986/

相关文章:

django - 在django中为用户分配组的权限

asp.net-mvc - DevExpress 中的 Render 和 GetHtml 方法有什么区别?

c# - IIS 反向代理干扰重定向位置 header

.net - 如何确保在部署新的 CSS 或 JavaScript 文件后客户端浏览器缓存已被刷新?

sharepoint - WSS Web 应用程序和 IIS 网站差异

sql-server - SQL Server 2008 R2 : Truncate Permissions

linux - autofs/sshfs 不遵守远程权限

c# - TDD - 想用一个假的存储库测试我的服务层,但是如何?

jquery - 如何将 $.post 与按钮 onclick 功能而不是表单一起使用?

c# - 在数据库 mvc2 c# 4.0 中存储时以字节为单位减少图像