45

Very often, when I hit Publish in VS13, I get the site to compile but when uploading I get the error saying that a file is busy.

Updating file (MyAzureSite\PrecompiledApp.config).
C:...\v12.0\Web\Microsoft.Web.Publishing.targets(4255,5):
Error ERROR_FILE_IN_USE: Web deployment task failed.
(The file 'PrecompiledApp.config' is in use.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.)

When I follow the link provided, it's suggested that I should go for enabling the appOffline rule. "Sure!", I think to myself. But how?! I've googled it, only to get a bunch of hits on the file that's supposed to replace the site while publishing. However, I get no info on how to get rid of my little problem.

I went the easy way and downloaded a publishing profile from my Azure web site and now I'm using it (you know, ALT+B+H).

Right now I resolve the problem by going to the portal for Azure and manually take the site off-line. Then I can publish and after that I take the site on-line. Highly impractical and painfully tedious.

What is causing this and how do I kill it?

2 Answers 2

61

You actually configure it in the publishing profile (.pubxml). Just add the element to the PropertyGroup like this:

<PropertyGroup>
  <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
  ...
</PropertyGroup>

More in this MSDN document

11
  • 1
    VS uses MsBuild Schema to validate the file. You may see several warnings but you can ignore them. People were complaining about this long ago
    – AKhooli
    Commented Jan 4, 2014 at 17:52
  • 8
    sadly, this solution only works when publishing directly from VS; but the continuous deployment doesn't respect the settings either in the .pubxml file or passed in as command line arguments to MSBuild Commented Jul 17, 2014 at 17:43
  • 1
    With VS2015 I get an error saying: [publishing profile] has invalid child element 'EnableMSDeployAppOffline'.
    – Ted Nyberg
    Commented Jan 19, 2016 at 22:07
  • 3
    I found this MSBUILD parameter that I've started using for CI. I haven't seen an error since I started using it... /p:EnableMSDeployAppOffline=true
    – Sam
    Commented Sep 16, 2016 at 13:53
  • 3
    Awesome! Another valuable setting not accessible by the UI. Love it!
    – iGanja
    Commented May 20, 2019 at 17:55
12

The Azure App Service Deployment Task has a checkbox for this (from version 2.0 onwards), under Additional Deployment Options: Take App Offline. Check that and you should be good to go.

Take Application Offline: Select the option to take the AzureRM Web App offline by placing an app_offline.htm file in the root directory of the Web App before the sync operation begins. The file will be removed after the sync operation completes successfully.

Screenshot: enter image description here

4
  • What is this _New Azure Web App Deployment` component you speak of? Is this in Visual Studio 2015? is this a manual install for VS2015?
    – Pure.Krome
    Commented Feb 10, 2017 at 8:51
  • On Visual Studio Online web-site in your project go to "Build & Release" at the top, then select "Deploy AzureRM App Service" task on the left panel, on the right panel find and select "Take App Offline" option.
    – Sergey
    Commented Feb 21, 2017 at 23:14
  • 1
    Is there a way to tell this option which file to use as app_offline.htm? I'd like to style and customize it. Thanks!
    – trademark
    Commented Jan 11, 2019 at 14:17
  • The link is dead. Commented Apr 6, 2020 at 7:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.