ACL was altered after using VS web deploy

Programming, error messages and sample code > ASP.NET
In some cases, you may find that after publishing a project using Web Deploy the ASPNet IUSR cannot write to the root directory or any files within it (except App_Data)

By default, Web Deploy sets the ACL of the ASPNet IUSR to read-only.  To prevent this from causing problems when you publish your application, you will need to locate the project file and make some changes. 
 
For Visual Studio 2010:
 
Locate the project file.  The project file will end with the extension .vbproj for applications written in Visual Basic or .csproj for applications written in C#.  In the project file, find:
 
<propertygroup condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</propertygroup>
Change it to:
 
<propertygroup condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <includesetaclproviderondestination>False</includesetaclproviderondestination>
</propertygroup>
 
For Visual Studio 2012 and later:
 
First you will need to build your project and create a Publish Profile.
 
Create the Publish profile and save it ( do not publish your files until you have modified the publish profile file '.pubxml' ).
 
Navigate back to Solution Explorer and go to Properties/PublishProfiles/[Application Name].pubxml
 
Add/Modify the 'IncludeSetAclProviderOnDestination' setting to 'False.'
 
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeSetAclProviderOnDestination>false</IncludeSetAclProviderOnDestination>
  </PropertyGroup>
</Project>
This will ensure that ACL is not modified by Web Deploy.
 
Reload the project in Visual Studio to clear the cache.
 
If you have already used Web Deploy to publish your site please contact support to reset your permission.