Configurer une application ASP.NET pour Azure App Service

Notes

Pour ASP.NET Core, consultez la section Configurer une application ASP.NET Core pour Azure App Service. Si votre application ASP.NET s’exécute dans un conteneur Windows ou Linux personnalisé, consultez Configurer un conteneur personnalisé pour Azure App Service.

Les applications ASP.NET doivent être déployées pour Azure App Service en tant que fichiers binaires compilés. L’outil de publication de Visual Studio génère la solution, puis déploie directement les fichiers binaires compilés, alors que le moteur de déploiement d’App Service déploie en premier le référentiel de code, puis compile les fichiers binaires.

Ce guide fournit des concepts clés et des instructions pour les développeurs ASP.NET. Si vous n’avez jamais utilisé Azure App Service, commencez par suivre le Guide de démarrage rapide d’ASP.NET et le tutoriel sur ASP.NET avec SQL Database.

Afficher les versions du runtime .NET Framework prises en charge

Dans App Service, toutes les versions de .NET Framework prises en charge sont déjà installées sur les instances Windows. Pour afficher le runtime .NET Framework et les versions du Kit de développement logiciel (SDK) disponibles, accédez à https://<app-name>.scm.azurewebsites.net/DebugConsole et exécutez la commande appropriée dans la console basée sur navigateur :

Pour les versions du runtime CLR 4 (.NET Framework 4 et versions ultérieures) :

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"

La dernière version de .NET Framework n’est peut-être pas disponible immédiatement.

Pour les versions du runtime CLR 2 (.NET Framework 3.5 et versions antérieures) :

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Afficher la version du runtime .NET Framework actuelle

Exécutez la commande suivante dans le Cloud Shell :

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

Une valeur de v4.0 signifie que la dernière version de CLR 4 (.NET Framework 4.x) est utilisée. La valeur de v2.0 signifie qu’une version CLR 2 (.NET Framework 3.5) est utilisée.

Définir la version du runtime .NET Framework

Par défaut, App Service utilise la dernière version de .NET Framework prise en charge pour exécuter votre application ASP.NET. Pour exécuter votre application avec .NET Framework 3.5, exécutez la commande suivante dans le Cloud Shell (v2.0 signifie CLR 2) :

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

Accéder aux variables d’environnement

Dans App Service, vous pouvez définir les paramètres de l’application et les chaînes de connexion en dehors de votre code d’application. Vous pouvez ensuite y accéder dans n’importe quelle classe à l’aide du modèle ASP.NET standard :

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

Si vous configurez un paramètre d’application portant le même nom dans App Service et dans web.config, la valeur d’App Service est prioritaire sur la valeur de web.config. La valeur de web.config locale vous permet de déboguer l’application localement, tandis que la valeur d’App Service vous permet d’exécuter l’application dans le produit avec les paramètres de production. Les chaînes de connexion fonctionnent de la même façon. De cette façon, vous pouvez conserver les secrets de votre application en dehors de votre référentiel de code et accéder aux valeurs appropriées sans modifier votre code.

Remarque

Envisagez des options de connectivité plus sécurisées qui ne nécessitent pas de secrets de connexion du tout. Pour plus d’informations, consultez Connectivité sécurisée aux services et bases de données Azure à partir d’Azure App Service.

Déployer des solutions à projets multiples

Quand une solution Visual Studio comprend plusieurs projets, le processus de publication de Visual Studio comprend déjà la sélection du projet à déployer. Lorsque vous effectuez un déploiement vers le moteur de déploiement App Service, comme c’est le cas avec Git ou Zip Deploy, avec l’automatisation de la génération activée, le moteur de déploiement App Service sélectionne le premier site web ou projet d’application web qu’il trouve en tant qu’application App Service. Vous pouvez spécifier le projet qu’App Service doit utiliser en spécifiant le paramètre d’application PROJECT. Par exemple, exécutez la commande suivante dans le service Cloud Shell :

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

Accéder à la page d’exceptions détaillées

Lorsque votre application ASP.NET génère une exception dans le débogueur Visual Studio, le navigateur affiche une page d’exceptions détaillées, mais dans App Service, cette page est remplacée par un message d’erreur générique. Pour afficher la page d’exceptions détaillées dans App Service, ouvrez le fichier Web.config et ajoutez l’élément <customErrors mode="Off"/> sous l’élément <system.web>. Par exemple :

<system.web>
    <customErrors mode="Off"/>
</system.web>

Redéployez votre application avec le fichier Web.config mis à jour. La même page d’exceptions détaillées est maintenant affichée.

Accéder aux journaux de diagnostic

Vous pouvez ajouter des messages de diagnostic dans votre code d’application à l’aide de System.Diagnostics.Trace. Par exemple :

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

Pour accéder aux journaux de la console générés à l’intérieur du code de votre application dans App Service, activez la journalisation des diagnostics en exécutant la commande suivante dans Cloud Shell :

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

Les valeurs possibles pour --level sont : Error, Warning, Info et Verbose. Chaque niveau suivant comprend le niveau précédent. Par exemple : Error comprend uniquement les messages d’erreur et Verbose comprend tous les messages.

Une fois la journalisation des diagnostics activée, exécutez la commande suivante pour voir le flux de journal :

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Si vous ne voyez pas les journaux d’activité de la console, attendez 30 secondes et vérifiez à nouveau.

Notes

Vous pouvez également inspecter les fichiers journaux à partir du navigateur sur https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Pour arrêter le streaming des journaux à tout moment, appuyez sur Ctrl+C.

Plus de ressources