ASP.NET Core  

How to Deploy ASP.NET Core Application to Azure App Service?

Deploying an ASP.NET Core application to Azure App Service is one of the most common cloud deployment strategies for modern .NET developers. Azure App Service provides a fully managed Platform as a Service (PaaS) environment that supports scalable, secure, and production-ready hosting for ASP.NET Core Web APIs and MVC applications. In enterprise backend systems, SaaS platforms, fintech applications, and high-traffic cloud-native solutions, Azure App Service simplifies deployment, scaling, monitoring, and maintenance.

In this step-by-step guide, we will walk through how to deploy an ASP.NET Core application to Azure App Service, covering prerequisites, publishing methods, configuration, scaling, and production best practices.

Prerequisites for Deployment

Before deploying your ASP.NET Core application to Azure, ensure the following:

  • .NET SDK installed on your machine

  • Azure account with active subscription

  • ASP.NET Core project ready for production

  • Azure CLI or Visual Studio installed

Make sure your application builds successfully and runs locally before deploying to the cloud.

Step 1: Create an Azure App Service Resource

First, log in to the Azure Portal and create a new App Service.

Basic configuration includes:

  • Subscription selection

  • Resource group creation

  • App name (must be globally unique)

  • Runtime stack (.NET version)

  • Region selection

  • Pricing tier selection

Choose the appropriate pricing tier depending on your production workload. For high-traffic enterprise applications, consider scaling options and performance requirements.

Azure App Service automatically provisions the necessary infrastructure and hosting environment.

Step 2: Configure Application Settings

Before deployment, configure environment variables in Azure App Service.

In the Azure Portal:

  • Navigate to your App Service

  • Go to Configuration

  • Add Application Settings

Store sensitive values such as:

  • Database connection strings

  • API keys

  • JWT secrets

Never hardcode secrets in your ASP.NET Core application. Use environment-based configuration for production security.

Step 3: Publish Using Visual Studio

If using Visual Studio, deployment is straightforward.

Steps:

  1. Right-click the project.

  2. Select Publish.

  3. Choose Azure as target.

  4. Select Azure App Service.

  5. Choose your existing App Service.

  6. Click Publish.

Visual Studio builds and deploys your ASP.NET Core application directly to Azure.

This method is beginner-friendly and suitable for quick deployments.

Step 4: Deploy Using .NET CLI

For command-line deployment, use the following approach.

First, publish your application:

dotnet publish -c Release

Then deploy using Azure CLI:

az webapp deploy --resource-group YourResourceGroup --name YourAppName --src-path ./bin/Release/net8.0/publish

This approach is commonly used in CI/CD pipelines and automated DevOps workflows.

Step 5: Configure Database Connection

If your ASP.NET Core application uses a database, configure a managed database service such as:

  • Azure SQL Database

  • Azure Database for PostgreSQL

  • Azure Cosmos DB

Update the connection string in Azure App Service configuration settings.

For enterprise production systems, use managed database services instead of local database instances.

Step 6: Enable HTTPS and Custom Domain

Azure App Service provides default HTTPS support.

For production deployment:

  • Configure custom domain

  • Install SSL certificate

  • Enforce HTTPS redirection in ASP.NET Core

Secure communication is critical in cloud-native applications handling sensitive user data.

Step 7: Enable Logging and Monitoring

Production-ready ASP.NET Core deployments require observability.

In Azure App Service:

  • Enable Application Insights

  • Enable diagnostic logging

  • Monitor CPU and memory usage

  • Track request performance and failures

Application Insights helps detect performance bottlenecks and runtime exceptions in real-time.

Monitoring ensures high availability and stability in scalable backend systems.

Step 8: Configure Scaling and Auto-Scaling

Azure App Service supports horizontal and vertical scaling.

You can:

  • Scale up to a higher pricing tier

  • Scale out to multiple instances

  • Configure auto-scaling rules based on CPU or request count

Auto-scaling ensures optimal performance during peak traffic in SaaS and enterprise applications.

Step 9: Implement CI/CD for Production Deployment

For enterprise-grade deployments, integrate CI/CD pipelines.

Common approaches:

  • Azure DevOps pipelines

  • GitHub Actions

  • Azure Deployment Center

CI/CD automates build, test, and deployment processes, reducing manual errors and improving release consistency.

Automated deployments are essential in modern DevOps environments.

Production Best Practices for ASP.NET Core on Azure

To ensure secure and scalable deployment:

  • Use managed identity instead of storing credentials

  • Enable health checks

  • Configure proper logging level

  • Use staging slots for zero-downtime deployments

  • Apply rate limiting and API security

Deployment slots allow blue-green deployments without downtime.

Following these best practices ensures stable cloud-native production environments.

Common Deployment Issues and Solutions

Some common issues include:

  • Incorrect runtime version selection

  • Missing environment variables

  • Database connection failures

  • High memory usage

Always verify configuration settings and logs when troubleshooting production deployment problems.

Summary

Deploying an ASP.NET Core application to Azure App Service involves creating an App Service resource, configuring environment settings securely, publishing the application using Visual Studio or .NET CLI, connecting to managed databases, enabling HTTPS and monitoring, and implementing scaling and CI/CD best practices. Azure App Service simplifies cloud deployment for enterprise-grade ASP.NET Core applications by providing scalable infrastructure, built-in security, and integrated monitoring tools. By following structured deployment steps and production best practices, developers can build reliable, secure, and high-performance cloud-native .NET applications ready for real-world workloads.