This tutorial shows how to deploy an ASP.NET web application to a web app in Azure App Service by using Visual Studio 2015 or Visual Studio 2013. The tutorial assumes that you are an ASP.NET developer who has no prior experience with using Azure. On completing the tutorial, you'll have a simple web application up and running in the cloud.
The following illustration shows the completed application:
This tutorial is about using ASP.NET with Azure App Service; it doesn't teach how to develop an ASP.NET web application. For an introduction to ASP.NET MVC 5, see Getting Started with ASP.NET MVC 5 on the ASP.NET site. For links to other articles that go into more depth about how to use Azure App Service, see the Next steps section.
Help us shape the scope and approach of this tutorial -- if there are other topics you'd like to see covered here in a getting-started tutorial leave feedback in a Disqus comment at the end of the tutorial.
You need an Azure account to complete this tutorial. You can:
If you want to get started with Azure App Service before you sign up for an Azure account, go to Try App Service. There, you can immediately create a short-lived starter web app in App Service—no credit card required, and no commitments.
In the following video, Scott Hanselman shows how easy it is to sign up for a free trial of Microsoft Azure. (Duration: 1:58)
If you don't have Visual Studio installed, use the link for Visual Studio 2015, and Visual Studio will be installed along with the SDK.
Depending on how many of the SDK dependencies you already have on your machine, installing the SDK could take a long time, from several minutes to a half hour or more.
Your first step is to create a web project in Visual Studio and a web app in Azure App Service. When that's done, you'll deploy the project to the web app to make it available on the Internet.
The diagram illustrates what you're doing in the create and deploy steps.
Open Visual Studio 2015 or Visual Studio 2013.
If you use Visual Studio 2013, the screens will be slightly different from the screenshots, but the procedures are essentially the same.
From the File menu, click New > Project.
In the New Project dialog box, click C# > Web > ASP.NET Web Application. If you prefer, you can choose Visual Basic.
Make sure that .NET Framework 4.5.2 is selected as the target framework.
Azure Application Insights monitors your web app for availability, performance, and usage. Clear the Add Application Insights to Project check box if you don't want to try it.
Name the application MyExample.
In the New ASP.NET Project dialog box, select the MVC template.
MVC is an ASP.NET framework for developing web apps.
Click Change Authentication.
In the Change Authentication dialog box, click No Authentication, and then click OK.
The sample application that you're creating won't enable users to log in. The Next steps section links to a tutorial that implements authentication and authorization.
In the New ASP.NET Project dialog box, leave the settings under Microsoft Azure unchanged, and then click OK.
The default settings specify that Visual Studio will create an Azure web app for your web project. In the next section of the tutorial, you'll deploy the web project to the newly created web app.
If you haven't already signed in to Azure, Visual Studio prompts you to do so. Sign in with the ID and password of the account that you use to manage your Azure subscription.
When you're signed in, the Configure Microsoft Azure Web App Settings dialog box asks you what resources you want to create.
In the Configure Microsoft Azure Web App Settings dialog box, enter a Web App name that is unique in the azurewebsites.net domain. For example, you can name it MyExample with numbers to the right to make it unique, such as MyExample810. If a default web name is created for you, it will be unique and you can use that.
If someone else has already used the name that you enter, you'll see a red exclamation mark to the right instead of a green check mark, and you'll need to enter a different name.
Azure will use this name as the prefix for your application's URL. The complete URL will consist of this name plus .azurewebsites.net (as shown next to the Web App name text box). For example, if the name is
MyExample810, the URL will be
MyExample810.azurewebsites.net. The URL has to be unique.
In the App Service plan drop-down, select Create new App Service plan.
The Next steps section has links to information about App Service plans.
Enter MyExamplePlan, or another name if you prefer, for the plan name.
In the Resource group drop-down, select Create new resource group.
The Next steps section has links to information about resource groups.
Enter MyExampleGroup, or another name if you prefer, for the resource group name.
In the Region drop-down list, choose the location that is closest to you.
This setting specifies which Azure datacenter your web app will run in. For this tutorial, you can select any region and it won't make a noticeable difference. But for a production web app, you want your web server to be as close as possible to the browsers that are accessing your site in order to minimize latency.
Leave the database field unchanged.
For this tutorial, you aren't using a database. The Next steps section links to a tutorial that shows how to use a database.
In a few seconds, Visual Studio creates the web project in the folder that you specified, and it creates the web app in the Azure region that you specified.
The Solution Explorer window shows the files and folders in the new project.
The Azure App Service Activity window shows that the web app has been created.
And you can see the web app in Server Explorer.
In this section you deploy web project to the web app, as illustrated in step 2 of the diagram.
In Solution Explorer, right-click the project, and choose Publish.
In a few seconds, the Publish Web wizard appears. The wizard opens to a publish profile that has settings for deploying the web project to the new web app. If you wanted to deploy to a different web app, you could click the Profile tab to create a different profile. For this tutorial, you'll accept the settings that deploy to the web app that you created earlier.
On the Connection tab of the Publish Web wizard, click Next.
On the Settings tab, click Next.
You can accept the default values for Configuration and File Publish Options.
You can use the Configuration drop-down to deploy a Debug build for remote debugging. The Next steps section links to a tutorial that shows how to run Visual Studio in debug mode remotely.
On the Preview tab, click Publish.
If you want to see what files will be copied to Azure, you can click Start Preview before clicking Publish.
When you click Publish Visual Studio begins the process of copying the files to the Azure server.
The Output and Azure App Service Activity windows show what deployment actions were taken and report successful completion of the deployment.
Upon successful deployment, the default browser automatically opens to the URL of the deployed web app, and the application that you created is now running in the cloud. The URL in the browser address bar shows that the web app is loaded from the Internet.
Keep this browser window open for use in the next section.
Tip: You can enable the Web One Click Publish toolbar for quick deployment. Click View > Toolbars, and then select Web One Click Publish. You can use the toolbar to select a profile, click a button to publish, or click a button to open the Publish Web wizard.
When you're testing and debugging a web app, you can do quick temporary changes on the remote site by opening and editing files in Server Explorer.
In Server Explorer, navigate to Azure > App Service > MyExampleGroup, and then expand the node for your web app.
Expand Files > Views > Home, and then double-click the Index.cshtml file.
<h1>Azure App Service</h1>.
Save the file.
Refresh the browser window that has the site running in Azure.
This change is now in the deployed site but not the local project. If you redeploy the project, the site will revert to the way it was before you made this change.
This feature is handy for temporarily turning off customErrors in the Web.config file in order to get a detailed error message.
In Server Explorer you can also right-click the web app node and get access to web app settings in a Visual Studio window, start a remote debugging session, and view application logs in real time as the application writes them.
For more information, see Troubleshooting Azure web apps in Visual Studio.
The Azure portal is a web interface that you can use to manage and monitor your Azure services, such as the web app that you just created. In this section of the tutorial, you look at some of what you can do in the portal.
In your browser, go to https://portal.azure.com, and sign in with your Azure credentials.
Click Web Apps, and then click the name of your web app.
The Web app blade displays an overview of settings and usage statistics for your web app.
At this point, your web app hasn't had much traffic and may not show anything in the graph. If you browse to your application, refresh the page a few times, and then refresh the portal page, you'll see some statistics show up.
Click Settings to see more options for configuring your web app.
You see a list of types of settings.
Click Application settings to see an example of the kinds of settings that you can configure in the portal.
These are just a few of the portal's features. You can create new web apps, delete existing web apps, stop and restart web apps, and manage other kinds of Azure services, such as databases and virtual machines.
In this tutorial, you've seen how to create a simple web application and deploy it to an Azure web app. Here are some related topics and resources for learning more about web apps in Azure App Service:
How to add database and authorization functionality
For a tutorial that shows how to access a database and restrict some application functions to authorized users, see Deploy a secure ASP.NET MVC app with membership, OAuth, and SQL Database to an Azure web app. That tutorial assumes some knowledge of MVC 5; if you are new to MVC 5, see Getting Started with ASP.NET MVC 5.
Other ways to deploy a web project
Visual Studio can also generate Windows PowerShell scripts that you can use to automate deployment. For more information, see Automate Everything (Building Real-World Cloud Apps with Azure).
How to troubleshoot a web app
Visual Studio provides features that make it easy to view Azure logs as they are generated in real time. You can also run in debug mode remotely in Azure. For more information, see Troubleshooting Azure web apps in Visual Studio.
How to add a custom domain name and SSL
For information about how to use SSL and your own domain (for example, www.contoso.com instead of contoso.azurewebsites.net), see the following resources:
How to add real-time features such as chat
If your web app will include real-time features (such as a chat service, a game, or a stock ticker), you can get the best performance by using ASP.NET SignalR with the WebSockets transport method. For more information, see Using SignalR with Azure web apps.
How to choose between App Service, Azure Cloud Services, and Azure Virtual Machines for web applications
In Azure, you can run web applications in App Service Web Apps as shown in this tutorial, or in Cloud Services or in Virtual Machines. For more information, see Azure web apps, cloud services, and VMs: When to use which?.