Jeff Sanders Technical Blog

I am a Microsoft employee that has worked on all aspects of the Web Stack for a long time. I hope these blogs are useful to you! Use this information at your own risk.


Earlier Posts

Chris had this note in his blog App Service Token Store


In this walkthrough I will show  you how to use Visual Studio Team Services with an existing Azure App Service project (specifically an Azure Web App).  We will add a task to update/create the project database from a DACPAC file and enable CI (Continuous Integration).


You have some code you have created in your subscription and a customer wants to authenticate and use your application.  You are not connected to any other Azure Active Directory authentication.  This is bit of a contrived example but will give you some insight in to how Azure App Services authentication works.


I thought it would be beneficial to add a checklist of things you may have to do when creating a .NET Azure WebJob.  Some of this applies to any Azure WebJob, but I will focus on a .NET Visual Basic WebJob (since I have not done that type before).  I chose not to include many screenshots because the portal UI changes frequently.  This article accomplishes the same thing but has a lot of overhead:  https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-get-started  It also shows how to do some things differently from how I will show you.  PLEASE read that as well.


This article outlines how to work with Application Settings in ASP.NET Core with Azure Web Apps (Azure App Services) super simple Jeff version…


Just a quicky post to get you started on how to use CRON expressions and Powershell to call a web page from a WebJob.  There are many different ways to use Azure WebJobs and this is using a Powershell script to call an endpoint and scheduling this using CRON.


We mention you can use ASP on Azure Web Apps but documentation is a bit scarce.  This walkthrough will show how to deploy a simple vbscript ASP page to a Azure Web App.


When you access an Azure Function app from the portal it will attempt to retrieve the Function runtime keys.  This is documented at https://github.com/Azure/azure-webjobs-sdk-script/wiki/Http-Functions#api-keys .  There are a number of reasons why the keys cannot be retrieved and this article documents a recent change that means you may see this issue.


PHP, Java and other FastCGI hosted environments should respond to an Always On ping to keep the child process warmed up.  Specifically in Azure App Services we send a request to the Root of the site with the header User-Agent: AlwaysOn.  If you are forcing HTTPS using a Url Rewrite rule, the Always On ping will get a redirect but will not follow that redirect and therefore the FastCGI module will not be hit and kept warm.


You notice particular files (.js, .html and more) are downloading very slowly


There is functionality in the Azure Portal that allows you to use the API definition of your Azure App Service and Export this through the “Export to PowerApps + Microsoft Flow” button in the API definition blade of your app ref: https://docs.microsoft.com/azure/app-service/app-service-export-api-to-powerapps-and-flow .  If you get the error: “Unable to download Swagger 2.0 metadata. Please verify that the URL is publicly accessible. You may need to enable CORS for the App Service portal extension located at”  It can be sometimes difficult to resolve this error.  This should help you however!


If you are not using the Self-Serve option of Azure Active Directory premium, an email is sent to unblock the user account.  Where does that email come from?  I could not find it documented anywhere.