Tuesday, October 5, 2021

ASP. Net web app Migration to Azure App Services using Azure Migrate and PowerShell Scripts

Azure Migrateis your central place in the Azure portal that provides a unified experience to discover, assess, and migrate your servers, databases, and web apps to Azure. We have recently announced the preview of at-scale, agentless discovery, and assessment of ASP.NET web apps to help you migrate ASP.NET web apps and run them natively on Azure App Service. 

With this preview, you can now easily discover ASP.NET web apps running on Internet Information Services (IIS) servers in a VMware environmentand assess them for migration to Azure App Service.  


At-Scale Discovery of Asp. Net Web Apps: 

For ASP. Net web apps discovery you need to either install a new Azure Migrate appliance or upgrade an existing Azure Migrate appliance. 

Once the appliance is configured Azure Migrate initiates discovery of web apps deployed on IIS web servers hosted within your on-premises VMWare environment. Discovery of ASP. Net web apps provides following key capabilities: 

  • Agentless discovery of up to 20,000 web apps with a single Azure Migrate appliance 
  • Provide a rich & interactive dashboard with a list of IIS web servers and underlying VM infra details. Web apps discovery surfaces information such as web app name, web server type and version, URL(s), binding port, and application pool. 
  • If web app discovery has failed then the discovery dashboard allows easy navigation to review relevant error messages, possible causes of failure and suggested remediation actions 

For further information about web apps discovery please refer to: 


At-Scale Assessment of ASP .NET Web Apps: 

Once you have discovered ASP .NET web apps you should proceed to next step of assessing these web apps. Assessment provides you migration readiness and sizing recommendations based on properties defined by you. Below is the list of key assessment capabilities: 

  • Modify assessment properties as per your requirements like target Azure region, application isolation requirements, and reserved instance pricing. 
  • Provide App Service SKU recommendation and display monthly cost estimates 
  • Provide per web app migration readiness information and provide detailed information on blockers and errors. 
  • You can create multiple assessments for same web apps with different set of assessment properties 

 For further information on web apps assessment please refer to  


Migrate Multiple ASP .NET to Azure App Services: 

Currently Azure migrate integrated experience enables at-scale discovery and assessment of ASP .NET web apps. You can continue to migrate ASP .NET web apps discovered and assessed using Azure Migrate by downloading prerelease PowerShell scripts. These PowerShell scripts allow bulk migration of ASP .NET web apps discovered & assessed using Azure Migrate to Azure App Services. 

PowerShell scripts for migration ASP .NET web apps to Azure App Services provide following key capabilities: 

  • Support for ASP.NET web apps hosted on IIS 7.5+ web servers with no product installation needed, just copy the scripts 
  • Perform bulk migration of ASP .NET web apps from a single IIS web server to Azure App services 
  • Option to package sites and move them to an alternate server for a subsequent deployment step. This mechanism enables support for part offline & online migration scenarios 
  • Easy customization of these scripts to suit your migration requirements 


For more information about the PowerShell Scripts please refer to: 


To use PowerShell Scripts for migration of ASP .NET web to App Services follow the below steps: 

  • Make sure the server meets the following requirements: Administrator permissions, IIS Server v7.5 or higher with IIS Management Console component enabled, and PowerShell v5.1 or higher 
  • Open an Administrator PowerShell prompt and enable script execution as needed (using Set-ExecutionPolicy) and/or adding the Microsoft Corporation certificate used to sign the scripts to the servers Trusted Publishers store (by default PowerShell will not consider any signing cert as trusted until added to Trusted Publishers even if signing certificate parent is already part of Trusted Root Certificate Authorities store. For more information on PowerShell execution policy and signing see: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1). 
  • Generate discovery and readiness information using Get-SiteReadiness.ps1 
  • Create migration packages using Get-SitePackage.ps1. This uses readiness information generated from Get-SiteReadiness to determine sites to package. The packages created in this step may then be migrated directly or copied and migrated from an alternate server. 
  • Create a migration settings file for one or more packages created with Get-SitePackage. This may be done manually using TemplateMigrationSettings.json template or by using Generate-MigrationSettings.ps1 to quickly create a functional settings file that may then be modified as desired, such as for specifying target App Service site names (“AzureSiteName” values). 
  • Use Invoke-SiteMigration.ps1 with a migration settings file to migrate the packaged sites to App Service 

For additional help on execution of these PowerShell scripts please refer to PowerShell Scripts · PowerShell Scripts · Azure/App-Service-Migration-Assistant Wiki (github.com)

Posted at https://sl.advdat.com/3oxmBXH