Heads up on file system permissions with Web Deploy in Visual Studio

Discussion in 'General troubleshooting' started by jonj, Nov 9, 2010.

  1. I would strongly caution against Web Deploy (I am using Visual Studio 2010 on Windows 7). I have an ongoing, open support ticket right now because every publish reverts my user Content directories to read only. The (very kind, responsive) support tech Mundo has confirmed the issue and has escalated the problem to the top levels... not fun. Back to FTP for me.:eek:
     
  2. Ray

    Ray

    We have found that web deploy is defaulted to modify the ACL of the ASPNet IUSR to read only. To get around this you will need to navigate to your project folder and find the project file. It will end with the extension .vbproj for applications written in Visual Basic or .csproj for applications written in C #.

    Look for the line element...

    <propertygroup condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></propertygroup>

    Before the closing tag element </propertygroup> input this line...

    <includesetaclproviderondestination>False</includesetaclproviderondestination>

    This will make sure that ACL is not overridden on the server and keep the ASPNet IUSR maintain its Read/Write/Modify permissions.

    If you have already uploaded a project using web deploy and you find that your application is unable to upload files via ASP.Net then you will need to contact the support department and have them reset your NTFS permission to give your ASPNet IUSR Read/Write/Modify permissions. Make sure your next deployment via web deploy has these updates incorporated else it will modify the ACL on the server.

    Another work around is to simply deploy your project via FTP as it will not alter the ACL on the server.

    We have contacted the Microsoft team about this matter and we are awaiting for their response.
     
  3. FredC

    FredC Winhost Staff

    We confirmed this with Microsoft, and this behavior is by design.
     
  4. Doesn't work

    <propertygroup condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></propertygroup>

    Before the closing tag element </propertygroup> input this line...

    <includesetaclproviderondestination>False</includesetaclproviderondestination>

    ---

    Even with this, every time I do a Web publish, my IIS 7 settings get overwritten. Is this intended to fix that too?
     
  5. Ray

    Ray

    I don't think you are inputting it in the correct location. We tested this and inputting this line does keep web deploy from modifying the ACL on the server.
     
  6. Yeah, I realized my question was about MIME header overwriting in IIS 7 and posted to a new topic. ACL may be fine now. Sorry/thanks for checking that post.:eek:
     

Share This Page