wwwroot not always updating on Azure Webapp - azure

I have accessed my site via Kudu # my-site.scm.azurewebsites.net/wwwroot/
I've noticed that the files in webroot are not the most up-to-date.
I am updating the site via github and Azure CLI.
My repo is hosting the correct files.
When I SSH on the Linux server, and cat <updated file>, it is up-to-date and reflective of the files in my repo.
How do I update the wwwroot?

Try explicitly stopping and then re-starting the webapp if "Restart" from the management portal did not solve the issue.
Possible cause: Azure App Service Deploy task version
Make sure you have the latest. linux azure app service is different from windows azure app service. Linux app service don't have default so you need to set. So follow the steps below:
Use WebDeploy/MSDeploy to deploy my web app. You need to set an app setting called WEBSITE_WEBDEPLOY_USE_SCM to false.
OR
When the Select deployment method option is not checked, the task appears to prefer the Run From Package option. The solution for us now isto select the option and choose Web Deploy as our deployment method.
If Git deployment fails to your Linux web app, choose one of the following options to deploy your application code:
Use the Continuous Delivery (Preview) feature: You can store your
app's source code in an Azure DevOps Git repo or GitHub repo to use
Azure Continuous Delivery. For more information, see How to configure
Continuous Delivery for Linux web app.
Use the ZIP deploy API (refer): To use this API, SSH into your web app and go
to the folder where you want to deploy your code. Run the following
code:
curl -X POST -u --data-binary #
https://{your-sitename}.scm.azurewebsites.net/api/zipdeploy
If you get an error that the curl command is not found, make sure you install curl by using apt-get install curl before you run the previous curl command.
You'll need to specify a startup script for the type of app you are
running.
Download Azure Storage Explorer, free tool to conveniently manage your Azure cloud storage resources from your desktop. (also to virtual web app directories)

Related

How to Deploy a React App(code present on github) to Azure WebApp using jenkins and TerraForm

I basically want to deploy(CICD) a React App(simple create-react-app) present in GitHub to Azure Webapp using Jenkins and TerraForm. I am in search of step by step process to do this.
I can't use the Azure DevOps platform since it is restricted in the organization I work.
Here is a tutorial for Deploy to Azure App Service with Jenkins and the Azure CLI might help.
But considering your React App already present in GitHub, there is a easier choice to deploy, which is using Git Action.
Create an App Service on portal.
Navigate to Deployment Center, better to use the Preview version.
Configure the CI/CD:
Go to your GitHub and see the Action logs, which is more clear than portal:

How FTP deploy .NET Core WebApp to Azure Linux App Service plan

I want do deploy code to Linux App service plan over FTP but I fail because I am missing a step how to "say to app service to use app DLL instead of default one".
Code is copied, I even uploaded test zip file and I can't download it, getting error 404 so how did Microsoft imagine to deploy code over FTP? I couldn't find any info in their documentation regarding this exact case.
I want to avoid using docker file, If this can't be done I'll simply switch to using Windows based App service plan.
In application setting screen of your WebApp mention the startup file name
dotnet

Best workflow to restart app service after a git push

Short version: How can I deploy a new version without first manually stopping the app-service?
Long version:
I'm using the following workflow to publish a new version of my ASP.NET Core app to an Azure App-Service.
The App-Service is running on a basic instance. I understand this is not intended for real use but I hope there is a good way to get this workflow running before we go into production(standard instance).
This works but how can I avoid step 4 to 7?
Publish the solution into a local folder.
Move the published content into a local git repo.
Commit all files and push to the app-service.
Stop the app-service from the portal
Enter the console and delete all files in the wwwroot folder
Redeploy the commit from the portal
Start the app-service
I was hoping that the push in step 3 would automatically trigger the remaining steps.
After step 3 I can see that the files have been updated, the new static files are served to the browser but the old binary is still running.
Similarly I can switch between deployment slots on the portal. I get the new static files served but the previous deployed binary is still answering all calls.
This doesn't work, the static files are changed but the old binary is still responding to calls.
Redeploy from portal
Restart app-service
The old binary is still served.
This works.
Stop app-service
Deploy from portal
Start app-service
It appears the running binary is blocking the deployment.
How can I automate deployment using git push or from the portal without manually having to stop the service?
Application settings:
You need to enable msdeploy flag MSDEPLOY_RENAME_LOCKED_FILES=1 in Azure App Service application settings. The option if set enables msdeploy to rename locked files that are locked during app deployment
Click application settings and scroll down until you see app settings.
set this key: MSDEPLOY_RENAME_LOCKED_FILES and for its value put 1
How can I deploy a new version without first manually stopping the app-service?
When I develop my .Net Core Web application via VS, I would leverage the publish wizard, check the option Remove additional files at destination and use the App offline support by setting EnableMSDeployAppOffline to true under the publish profile for publishing my application to Azure Web App.
Based on your current deployment workflow, I assume that you are using the Continuous Deployment to your Azure App Service with your local Git Repository. After I changed the source code, then commit the changes to the local repository, then push the source code to my web app remote repository, the source code would be built and copied to D:\home\site\wwwroot on Azure side. Details you could follow Local Git Deployment to Azure App Service.
For your step 1 to 3, I just push the code changes from the local repository to my app service remote repository. Azure would generate the deployment script for you to build your source code project and move the built content to D:\home\site\wwwroot. Moreover, you could Custom Deployment Script for your additional requirement.

How to deploy an angular2 application as a webapp in azure

Can someone help me deploy an angular2 application as a webapp in azure. I have a github enterprise setup. On my Jenkins server, I would like to do a no build. On successful completion of the build, I'd like to push it to a webapp.
Every deployment I attempted, failed on npm of one form or other. I don't want to create a VM and deploy a server.
I'd appreciate any help on this.
Deployment of all supported web applications to azure web app service ( PaaS and not IaaS VM as per your requirement) is possible by the following options
from git CLI you can publish the code from your local repository to azure.
linking an online repository like bitbucket, gitlabs to azure
Powershell - publish code from your local repository to azure
Azure CLI - publish code from your local repository to azure
FTP option is available as well.
Check out this post to see how you can publish using git commandline https://learn.microsoft.com/en-us/azure/app-service-web/app-service-deploy-local-git

FTP'ing a Suave app to Azure

Having never used Azure before I'm attempting to deploy a simple F# Suave app to Azure using FTP. Ultimately I want to deploy via github but I initially thought FTP'ing it would be the easy first step. According to https://suave.io/azure-app-service.html it should be straight forward.
These are the steps I followed
Created a new web app in Azure including a resource group
and app service plan. All on the Free Tier.
Downloaded the publishsettings XML file that Azure created.
Cloned this repo: https://github.com/isaacabraham/fsharp-demonstrator
Used FileZilla to connect via FTP using the creds
from step 2.
Uploaded the files (via FTP) from
fsharp-demonstrator/src/SuaveHost (which includes the necessary web.config file) from the repo cloned at step 3 to
the site\wwwroot on Azure.
Navigated to Azure site url.
Then I receive the error:
The specified CGI application encountered an error and the server terminated the process.
(When I look at the folders on Azure under site\wwwroot I don't see any obj or bin folders. I don't think any msbuild process occurred. That doesn't seem right.)
Anybody got any idea what the problem is?
I suspect the issue is that when you deploy via FTP, then Azure does not automatically run the deploy script specified in the .deployment file.
The build.fsx script uses Kudu service to deploy the built files, so it might be easier to just use Github deployment rather than FTP - this way, Azure will do the deployment for you.
If you want to deploy via FTP, you'll need to build the project locally and upload the output. I'm not sure how to best do this with Isaac's Kudu-based demo though (ultimately, you need web.config that points to your built executable like this)

Resources