32
votes

I had a network failure while publishing (using visual studio webdeploy ) my webapp to azure. Later i tried again, Then i got the below error message.

Error 5 Web deployment task failed. (Web Deploy cannot modify the file 'NewRelic.Agent.Core.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.) 0 0 ABCD.ABCD.ABCD.ABCD

So i restarted my webapp several times, but same exception. then i tried with FTP. That was also a failure. After few minutes i tried again with visual studio web deploy, then publishing succeeded. But now i am getting a 503 error- site under construction. Any idea?

Note: I tried app offline also. No hope

4
well the error is telling you what the problem is.. perhaps the dll is locked on the remote server.. how are you consuming the dll perhaps there is an issue in your code in regards to how you are creating an instance of the dll and releasing the resources.. can't really tell without seeing what your existing code looks like in my opinionMethodMan
iam using newrelic for webapp analytics. There is no issue with my code. It was working till today morning. But after deployment failure( due to network issue), i am unable to successfully deploy it once againManu Mohan Thekkedath
you can't assume that it's not working however if it just started..then I would contact the ISP and ask if your process in regards to IIS or what ever type of webserver they use can be restarted.. also is there a way that you can attach to the remote process..?MethodMan
Thanks for your time :) . I resolved my issue. Solution was to remove offline html from root directory that is created because of the app offline rule i added to publish profile :D Sorry to bother youManu Mohan Thekkedath
I had the exact same problem. Your comment helped a lot, please publish it as an accepted answer.Kostub Deshmukh

4 Answers

53
votes

I resolved my issue. Solution was to remove offline html (APP_OFFLINE.html) from root directory(on server) that is created because of the app offline rule i added to publish profile.

actual problem : <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline> in your publish profile that is actually used to take your app offline while deploying. After finishing deployment, MSDeploy tool should delete APP_OFFLINE.html automatically. But, somehow it did not happened in above case.

So what I suggest is, take a look at the root directory of your website and if there's a file called APP_OFFLINE.html, just remove that.

9
votes

Culprit for this outage : app_offline.htm

This is a known bug with Azure Kudu service where it fails intermittently to delete app_offline.htm file from the server - https://github.com/projectkudu/kudu/issues/2949.

This file gets added to bring the site down temporarily and should be removed once the site is upgraded. But this is not happening consistently. As of Nov 2019, the bug is still open.

There is a simple work around for this :

  • Open your app service in Azure. On left hand panel, scroll and find Advanced Tools. Click Go. This will take you to Kudu service for your app service.
  • On the nav bar, click Tools > Zip push deploy.
  • There will be a file app_offline.htm in the list.
  • Click on delete button left to it and delete it. That's it! Your app should be up now.

Permanent Solution would be :

Tell Kudu not to create this file at all by adding key SCM_CREATE_APP_OFFLINE with value 0 in your appsettings.

0
votes

This error can happen when publishing from Visual Studio using a publish profile and the publishing fails with an error.

The solution is to solve the publishing error.

In my case the error was connected with a locked file. Stopping the app service before publishing solved the issue.

0
votes

FYI, this happened for me today, deployment automated through ADO CI/CD. It looks like the last deployment failed for ERR_FILE_IN_USE on the .exe for the web app itself, so it appears the rollback wasn't successful.