Exporter (0) Imprimer
Développer tout

Résolution des erreurs et avertissements de validation de package

Mis à jour: août 2014

Quand vous créez un package ou que vous publiez vos projets de service cloud Azure, un ou plusieurs avertissements ou erreurs peuvent apparaître. Ces avertissements et erreurs peuvent vous aider à identifier et à résoudre des problèmes qui empêcheraient le projet d'être déployé ou publié. En recevant un avertissement ou une erreur à l'étape de création du package, vous pouvez gagner du temps en résolvant ces problèmes avant de déployer votre projet Azure. Vous n'êtes pas tenu d'attendre la fin du déploiement pour qu'ensuite il échoue.

Par défaut, les problèmes de validation du package sont traités comme des avertissements et n'empêcheront pas le déploiement de votre rôle. Pour changer la valeur par défaut et empêcher le déploiement, définissez la propriété Considérer les avertissements comme des erreurs à True pour votre projet Azure. Consultez Procédure : configuration d'un projet de service cloud Azure avec Visual Studio.

Le tableau suivant montre les avertissements clés pour la validation du package d'un projet Azure ainsi qu'un lien vers plus d'informations pour chaque avertissement.

 

Numéro d'erreur

Message

Plus d'informations

WAT150

Le projet « nom du projet » dépend de l'assembly suivant : ‘nom de l'assembly'. Cet assembly n'est pas dans le package. Pour vous assurer que le rôle démarre, ajoutez cet assembly comme référence au projet et définissez la propriété Copie locale sur true.

Include Files in the Service Package

WAT151

Le projet « nom du projet » dépend de l'assembly suivant : ‘nom de l'assembly'. Cet assembly n'est pas dans le package et doit être installé dans le GAC. Pour vous assurer que le rôle démarre, ajoutez cet assembly comme référence dans le projet et définissez la propriété Copie locale sur true. Utilisez ensuite une tâche de démarrage pour le rôle pour ajouter l'assembly au GAC.

WAT152

Le projet « nom du projet » dépend de l'assembly suivant : ‘nom de l'assembly'. Cet assembly est installé dans le GAC par un fichier d'installation Windows (fichier .msi). Pour vous assurer que le rôle démarre, vous devez installer ce fichier d'installation Windows en utilisant une tâche de démarrage pour votre rôle ou ajouter cet assembly comme référence dans le projet et définir la propriété Copie locale sur true.

WAT153

Le projet web « nom du projet » dépend de l'assembly MVC suivant : nom de l'assembly. Ces assemblys doivent être ajoutés au package ou installés sur la machine virtuelle pour votre rôle. Pour plus d'informations à ce sujet, consultez la page d'aide suivante : http://go.microsoft.com/fwlink/?LinkId=218227.

Publication d'un projet MVC en tant que rôle Web

WAT160

Le projet « nom du projet » contient l'assembly suivant : ‘nom de l'assembly'. Cet assembly n'est pas compatible avec l'architecture de processeur 64 bits utilisée par IIS sur Windows Azure. Pour vous assurer que le rôle démarre, vous devez remplacer cet assembly par un autre qui est compatible avec cette architecture.

Si vous avez une tâche de démarrage pour configurer IIS pour exécuter des applications 32 bits, vous pouvez ignorer ce message d'avertissement. Pour plus d'informations sur la façon de procéder, consultez Enable 32 bit application mode in the IIS application pool using a startup task.

Sinon, supprimez l'assembly de votre projet et ajoutez un assembly qui est compatible avec l'architecture de processeur 64 bits. Remodelez ou publiez ensuite l'application.

WAT170

Le paramètre de configuration « nom du paramètre » est configuré pour utiliser l'émulateur de stockage local pour le rôle « nom du rôle » dans le fichier de configuration « nom du fichier ». Pour accéder aux services de stockage Windows Azure, vous devez fournir une chaîne de connexion de stockage Windows Azure valide.

Pour plus d'informations sur la manière d'ajouter une chaîne de connexion de stockage Windows Azure valide, consultez Paramétrage de services requis pour publier un service nuage depuis Visual Studio.

WAT180

Échec de la création de package parce qu'il y a des erreurs de validation. Vous devez réparer les erreurs, ou bien vous pouvez définir la propriété Considérer les avertissements comme des erreurs sur false pour ce projet Azure.

Pour plus d'informations sur la manière de définir la propriété Considérer les avertissements comme des erreurs, consultez Procédure : configuration d'un projet de service cloud Azure avec Visual Studio.

WAT190

Le projet « nom du projet » cible « version de .NET Framework ». Pour vous assurer que le rôle démarre, cette version de .NET Framework doit être installée sur la machine virtuelle pour ce rôle. Vous pouvez utiliser une tâche de démarrage pour installer la version requise, si elle n'est pas déjà installée dans le cadre du système d'exploitation invité Windows Azure.

Utilisez une tâche de démarrage pour un rôle pour installer une version de .NET Framework.

WAT230

La chaîne de connexion « Connexion par défaut » utilise une base de données locale « .\SQLEXPRESS » dans le projet « nom du projet ». Cette chaîne de connexion ne fonctionnera pas lorsque vous lancerez cette application dans Windows Azure. Pour accéder à une base de données différente, vous devez mettre à jour la chaîne de connexion dans le fichier web.config. Pour plus d'informations à ce sujet, consultez la page d'aide suivante : http://go.microsoft.com/fwlink/?LinkId=224877

Utilisation d'une Base de données SQL Azure avec les fournisseurs ASP.NET Universal

Si un rôle ne parvient pas à démarrer, vous devez vérifier la fenêtre de sortie de génération/déploiement du package pour vérifier qu'il n'y avait pas d'erreurs ou d'avertissements de validation. Vous pouvez aussi configurer une connexion Bureau à distance quand vous publiez votre projet, pour vous permettre d'accéder à la machine virtuelle et de diagnostiquer tous les problèmes. Pour plus d'informations, consultez Utilisation du Bureau à distance avec des rôles Azure.

Une autre approche pour déterminer pour quelle raison un rôle ne parvient pas à démarrer consiste à activer IntelliTrace pour votre déploiement. Pour plus d'informations, consultez Débogage d'un service cloud publié avec IntelliTrace et Visual Studio et Résolution des problèmes de démarrage de rôle.

Lorsque qu'un rôle est créé sur une machine virtuelle, vous pouvez ajouter une tâche de démarrage qui est exécutée après que la machine virtuelle a été créée et avant que le rôle soit démarré. Cette tâche s'assure que le rôle peut démarrer sans problème. Par exemple, vous pouvez vouloir effectuer l'une des tâches suivantes :

  • Installez un fichier d'installation Windows.

  • Ajoutez un assembly au GAC.

  • Installez une version spécifique du .NET framework requis pour le rôle.

Les tâches de démarrage que vous ajoutez pour un rôle sont exécutées à partir de la ligne de commande. Vous pouvez créer un fichier de commandes pour exécuter un ensemble de commandes ou ajouter les commandes spécifiques que vous voulez exécuter. Vous ajoutez les fichiers pour la tâche de démarrage à votre projet afin qu'ils soient installés lorsque le package de services est déployé. La tâche de démarrage est alors exécutée à l'aide de ces fichiers après la création de la machine virtuelle pour ce rôle.

ImportantImportant
Si les fichiers de votre tâche de démarrage sont dans un sous-dossier, votre tâche de démarrage peut devoir accéder au répertoire du fichier de commandes lorsque les commandes sont exécutées sur la machine virtuelle. Vous pouvez utiliser la variable suivante pour accéder au répertoire du fichier de commandes : %~dp0. Veuillez noter que cette variable contient le lecteur et le chemin d'accès pour le fichier de commandes et ajoute une barre oblique inverse à la fin du chemin d'accès. Par exemple, vous pouvez utiliser la commande suivante pour exécuter un fichier .exe (StartUp.exe) qui se trouve dans le même dossier que le lot de traitement : %~dp0StartUp.exe.

  1. (Facultatif) Vous pouvez créer un fichier de commandes si vous voulez exécuter conjointement un ensemble de commandes pour votre tâche de démarrage. Le fichier que vous créez pour exécuter une tâche de démarrage ne doit pas inclure de marque d'ordre d'octet. Pour éviter ce problème, vous pouvez créer votre fichier pour exécuter votre tâche de démarrage à l'aide du bloc-notes, ou vous assurer que vous enregistrez un fichier que vous créez dans Visual Studio avec codage. Pour enregistrer un fichier dans VisualStudio avec codage, procédez comme suit :

    1. Pour enregistrer un fichier dans Visual Studio avec codage, assurez-vous que le fichier est affiché dans la fenêtre d'éditeur Visual Studio. Sur la barre de menus, choisissez Fichier, Enregistrer <nom du fichier> sous.

      La boîte de dialogue Enregistrer le fichier s'affiche.

    2. Pour enregistrer le fichier avec codage, choisissez la flèche déroulante sur le bouton Enregistrer et sélectionnez Enregistrer avec encodage.

      La boîte de dialogue Options d'enregistrement avancées est affichée.

    3. Dans la liste Encodage, choisissez Unicode (UTF-8 avec signature) - Page de codes 65001 puis choisissez le bouton OK.

  2. Pour ajouter un dossier pour votre tâche de démarrage, créez un dossier dans le projet pour le rôle qui a besoin d'une tâche de démarrage. Par exemple, s'il s'agit d'un projet de rôle Web appelé WebRole1 qui nécessite que vous installiez un fichier d'installation Windows, ajoutez un dossier appelé Démarrage dans ce projet de rôle Web.

  3. Pour ajouter les fichiers à ce dossier, ouvrez le menu contextuel pour le dossier et choisissez Ajouter, Élément existant. Choisissez les fichiers qui sont exigés pour la tâche de démarrage, y compris tous lots de traitement puis sélectionnez le bouton Ajouter.

    Les fichiers sont affichés dans l'Explorateur de solutions sous le dossier que vous avez créé.

  4. Pour inclure ces fichiers dans votre package de services sans essayer de les générer, ouvrez le menu contextuel pour chaque fichier et choisissez Propriétés. Dans la vue Propriétés, dans la liste déroulante Action de génération, choisissez Aucun et dans la liste déroulante Copier dans le répertoire de sortie, choisissez Copier si plus récent.

  5. Pour ajouter la tâche de démarrage à votre rôle, ouvrez le menu contextuel pour le fichier de définition de service ServiceDefinition.csdef et choisissez Ouvrir. Ajoutez les instructions XML suivantes à l'élément de rôle qui exige cette tâche de démarrage. Cette commande suppose que vous ayez créé pour vos tâches de démarrage un dossier appelé Démarrage et que ce fichier de commandes ou cette commande requiert des privilèges élevés. La commande peut être un fichier .exe, un fichier de commandes, un fichier .msi ou toute instruction de ligne de commande valide.

    
    <Startup>
       <Task commandLine="startup\<command>" executionContext="elevated" taskType="simple" />
    </Startup>
    
    

    Voici un exemple de l'élément webrole dans un fichier de définition de service avec une tâche de démarrage ajoutée :

    
    <WebRole name="WebRole1">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
        </Endpoints>
        <Imports>
          <Import moduleName="Diagnostics" />
          <Import moduleName="RemoteAccess" />
          <Import moduleName="RemoteForwarder" />
        </Imports>
        <Startup>
          <Task commandLine="startup\StartUpTask.cmd" executionContext="elevated" />
        </Startup>
    </WebRole>
    
    
  6. Pour vérifier que la tâche de démarrage s'exécute, publiez votre projet Azure. Si nécessaire, vous pouvez créer une connexion Bureau à distance pour la machine virtuelle pour votre rôle quand vous publiez votre projet. Vous pouvez ensuite vous connecter à la machine virtuelle et vérifier que les tâches de démarrage se sont exécutées correctement. Pour plus d'informations sur la manière d'utiliser le bureau à distance avec les rôles Windows Azure, consultez Utilisation du Bureau à distance avec des rôles Azure.

Pour plus d'informations, consultez Définir des tâches de démarrage pour un rôle. Si vous devez utiliser des variables d'environnement avec votre tâche de démarrage, vous pouvez définir les variables d'environnement pour un rôle dans votre fichier de définition de service. Pour plus d'informations, consultez Définir les variables d'environnement avant le démarrage d'un rôle ou Exécuter des tâches de démarrage dans Azure.

Si vous voulez publier un projet MVC comme un rôle Web sur Windows Azure, vous devez vous assurer que tous les assemblys MVC nécessaires sont disponibles lorsque le rôle Web s'exécute dans Windows Azure. Si vous créez un projet de MVC en tant que rôle Web à l'aide des modèles fournis par les outils Windows Azure les plus récents pour Visual Studio, les assemblys que vous demandez sont automatiquement ajoutés au package de services. Dans cette situation, vous ne devez pas voir un message d'avertissement s'afficher concernant des assemblys MVC manquants lors de la création du package de services.

Pour apporter une solution à un message d'avertissement indiquant que des assemblys MVC manquent, vous devez suivre les étapes dans la procédure qui s'applique à votre projet MVC :

  1. Si vous utilisez Visual Studio Service Pack 1 pour publier votre projet Azure, procédez comme suit pour ajouter des références aux assemblys et les inclure dans le package de services :

    1. Ouvrez le menu contextuel pour le projet MVC et choisissez Ajouter des dépendances pouvant être déployées.

      La boîte de dialogue Ajouter des dépendances pouvant être déployées s'affiche.

    2. Cochez la case ASP.NET MVC et choisissez le bouton OK.

      Les assemblys seront maintenant ajoutés quand vous créerez un package de service. Les assemblys sont ensuite installés sur la machine virtuelle pour ce rôle Web lorsque le package de services est déployé.

  2. Si vous n'utilisez pas Visual Studio Service Pack 1 pour publier votre projet Azure, vous pouvez effectuer une des tâches suivantes pour vous assurer que votre projet Azure s'exécute correctement quand il est déployé dans Azure :

    1. Ajoutez des références aux assemblys suivants à votre projet de rôle Web, puis définissez la propriété Copie locale sur Vrai :

      • Microsoft.Web.Infrastructure

      • System.Web.Helpers

      • System.Web.Mvc

      • System.Web.Razor

      • System.Web.WebPages

      • System.Web.WebPages.Deployment

      • System.Web.WebPages.Razor

      noteRemarque
      Pour plus d'informations sur la manière d'ajouter une référence pour un assembly à un projet de rôle Web, consultez Include Files in the Service Package.

    2. Ajoutez une tâche de démarrage à votre rôle Web pour installer les assemblys MVC3. Créez un dossier dans votre projet appelé démarrage. Ajoutez ensuite le fichier AspNetMVC3Setup.exe à ce dossier. Enfin, ajoutez ce XML au fichier de définition de service dans l'élément de rôle Web :

      
      <Startup>
         <Task commandLine="startup\AspNetMVC3Setup.exe /q /log mvc3_install.htm" executionContext="elevated" />
      </Startup>
      
      
      noteRemarque
      Lisez un billet concernant l'ajout d'une tâche de démarrage pour les assemblys MVC3. Pour plus d'informations sur ces tâches de démarrage, consultez la section précédente : Créer une tâche de démarrage pour un rôle.

  1. Si vous recevez ce message d'avertissement pour un projet MVC2, la référence pour l'assembly System.Web.Mvc doit déjà être ajoutée au projet de rôle Web. Pour inclure cet assembly dans le package de services, ouvrez le menu contextuel pour cet assembly et choisissez Propriétés.

    La fenêtre Propriétés s'affiche.

  2. Dans la liste Copie locale, choisissez Vrai.

Lorsque vous créez un rôle Web MVC 3 avec Azure Tools pour Visual Studio, le rôle Web est configuré pour utiliser les fournisseurs ASP.NET Universal. Par défaut, ces fournisseurs sont configurés pour utiliser une base de données LocalDB pour la chaîne de connexion Connexion par défaut. Quand vous publiez votre projet Azure, vous devez changer la chaîne de connexion pour utiliser une instance de base de données SQL hébergée par Azure.

ImportantImportant
Pour cela, vous devez avoir un abonnement qui vous permet d'utiliser une instance de Base de données SQL hébergée par Azure. Si vous accédez à votre abonnement depuis le Portail de gestion Azure, vous pouvez déterminer quels services vos abonnements fournissent. Pour plus d'informations, consultez Comment migrer et publier une application Web vers Azure à partir de Visual Studio.

Voir aussi

Afficher:
© 2015 Microsoft