Problèmes courants à l’origine du recyclage des rôles Azure Cloud Services (classique)
Important
Cloud Services (classique) est désormais déconseillé pour tous les clients depuis le 1er septembre 2024. Tous les déploiements existants en cours d’exécution seront arrêtés par Microsoft, et les données seront définitivement perdues à partir d’octobre 2024. Les nouveaux déploiements doivent utiliser le nouveau modèle de déploiement basé sur Azure Resource Manager Azure Cloud Services (support étendu) .
Cet article examine certaines des causes courantes entraînant des problèmes de déploiement, et indique des conseils de dépannage pour vous aider à résoudre ces problèmes. Une instance de rôle qui ne démarre pas ou qui est recyclée entre les états Initialisation, Occupée et Arrêt indique un problème au niveau de l’application.
Si le problème que vous rencontrez avec Azure n’est pas traité dans cet article, parcourez les forums Azure sur Microsoft Q&A et Stack Overflow. Vous pouvez publier votre problème sur ces forums ou @AzureSupport sur Twitter. Vous pouvez également envoyer une demande de support Azure. Pour envoyer une demande de support sur la page Prise en charge Azure, sélectionnez Obtenir de l’aide.
Dépendances d'exécution manquantes
Si un rôle dans votre application repose sur un assembly qui ne fait pas partie du .NET Framework ou de la bibliothèque managée Azure, vous devez inclure explicitement cet assembly dans le package d'application. N'oubliez pas que les autres infrastructures Microsoft ne sont pas disponibles par défaut sur Azure. Si votre rôle repose sur une telle infrastructure, vous devez ajouter ces assemblys au package d'application.
Avant de générer et de packager votre application, vérifiez que les instructions suivantes sont vraies :
- Si vous utilisez Visual Studio, vérifiez que la propriété Copie locale est définie sur True pour chaque assembly référencé dans votre projet ne faisant pas partie du Kit de développement logiciel (SDK) Azure ni de .NET Framework.
- Assurez-vous que le fichier web.config ne fait pas référence à des assemblies inutilisés dans l’élément de compilation.
- La propriété Build Action de chaque fichier .cshtml est définie sur Content. Ce paramétrage garantit que les fichiers s’affichent correctement dans le package et permet à d’autres fichiers référencés d’apparaître dans le package.
L’assembly cible la mauvaise plateforme
Azure est un environnement 64 bits. Par conséquent, les assemblies .NET compilés pour une cible 32 bits ne sont pas compatibles avec Azure.
Le rôle génère des exceptions non gérées lors de l'initialisation ou de l'arrêt
Toutes les exceptions levées par les méthodes de la classe RoleEntryPoint, notamment les méthodes OnStart, OnStop et Run, sont des exceptions non prises en charge. Si une exception non prise en charge se produit dans une de ces méthodes, le rôle recycle. Si le rôle est recyclé à plusieurs reprises, il peut lever une exception non prise en charge chaque fois qu’il tente de démarrer.
Le rôle est renvoyé à partir de la méthode Run
La méthode Exécuter est destinée à être exécutée indéfiniment. Si votre code remplace la méthode Exécuter , il devrait être en veille indéfiniment. Si la méthode Exécuter est renvoyée, le rôle est recyclé.
Chaîne DiagnosticsConnectionString incorrecte
Si l’application utilise les diagnostics Azure, votre fichier de configuration de service doit spécifier le paramètre de configuration DiagnosticsConnectionString
. Ce paramètre doit spécifier une connexion HTTPS à votre compte de stockage dans Azure.
Pour vous assurer que votre paramètre DiagnosticsConnectionString
est correct avant de déployer votre package d'application dans Azure, vérifiez que les instructions suivantes sont vraies :
- Le paramètre
DiagnosticsConnectionString
pointe vers un compte de stockage valide dans Azure.
Par défaut, ce paramètre pointe vers le compte de stockage émulé, et vous devez donc modifier explicitement ce paramètre avant de déployer votre package d'application. Si vous ne modifiez pas ce paramètre, une exception est générée lorsque l'instance de rôle tente de démarrer le moniteur de diagnostic. L'instance de rôle risque alors de recycler indéfiniment. - La chaîne de connexion est spécifiée au format suivant. (Le protocole HTTPS doit être spécifié.) Remplacez MyAccountName par le nom de votre compte de stockage et MyAccountKey par votre clé d’accès :
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey
Si vous développez votre application en utilisant les Outils Azure pour Microsoft Visual Studio, vous pouvez utiliser les pages de propriétés pour définir cette valeur.
Le certificat exporté n’inclut pas de clé privée
Pour exécuter un rôle web sous TLS (Transport Layer Security), vous devez vous assurer que votre certificat de gestion exporté inclut la clé privée. Si vous utilisez le gestionnaire de certificats Windows pour exporter le certificat, veillez à sélectionner Oui pour l’option Exporter la clé privée. Le certificat doit être exporté au format .pfx, l’unique format actuellement pris en charge.
Étapes suivantes
Affichez plus d’ articles de résolution des problèmes liés aux services cloud.
Affichez d’autres scénarios de recyclage des rôles dans la série du blog de Kevin Williamson.