Obtenir les paramètres de publication d’IIS et les importer dans Visual Studio

Vous pouvez utiliser l’outil Publier pour importer des paramètres de publication, puis déployer votre application. Dans cet article, nous utilisons des paramètres de publication pour IIS.

Ces étapes s’appliquent aux applications web ASP.NET et ASP.NET Core.

Notes

Un fichier de paramètres de publication (*.publishsettings) est différent de celui d’un profil de publication (*.pubxml). Un fichier de paramètres de publication est créé dans IIS et peut être importé dans Visual Studio. Visual Studio crée le profil de publication.

Prérequis

  • Visual Studio installé avec la charge de travail ASP.NET et de développement web. Si vous avez déjà installé Visual Studio :

    • Installez les dernières mises à jour dans Visual Studio en sélectionnant Aide>Rechercher les mises à jour.
    • Ajoutez la charge de travail en sélectionnant Outils>Obtenir des outils et des fonctionnalités.
  • Sur votre serveur, vous devez exécuter Windows Server 2012 ou version ultérieure, et vous devez avoir le rôle serveur web IIS correctement installé (nécessaire pour générer le fichier de paramètres de publication (*.publishsettings)). ASP.NET 4.5 ou ASP.NET Core doit également être installé sur le serveur. Les étapes de ce tutoriel ont été testées dans Windows Server 2022.

    Notes

    IIS sur Windows ne prend pas en charge la génération des paramètres de publication. Toutefois, vous pouvez toujours publier sur IIS en utilisant l’outil Publier dans Visual Studio.

Installer et configurer Web Deploy sur Windows Server

Web Deploy fournit des fonctionnalités de configuration supplémentaires qui permettent de créer le fichier de paramètres de publication à partir de l’interface utilisateur.

Notes

Web Platform Installer est arrivé en fin de vie le 01/07/22. Pour plus d’informations, consultez Web Platform Installer - Fin du support et retrait du flux produit/application. Vous pouvez installer directement Web Deploy 4.0 pour créer le fichier de paramètres de publication.

  1. Si vous n’avez pas encore installé les Scripts et outils de gestion IIS, faites-le maintenant.

    Accédez à Sélectionner des rôles de serveurs>Serveur web (IIS)>Outils de gestion, sélectionnez le rôle Scripts et outils de gestion IIS, cliquez sur Suivant, puis installez le rôle.

    Install IIS Management Scripts and Tools

    Les scripts et les outils sont nécessaires pour permettre la génération du fichier de paramètres de publication.

    Veillez également à installer le Service de gestion et la Console de gestion IIS (ils peuvent déjà être installés).

  2. Sur Windows Server, téléchargez Web Deploy 4.0.

  3. Exécutez le programme d’installation Web Deploy et veillez à sélectionner une installation Complète au lieu d’une installation classique.

    Une fois l’installation terminée, vous obtenez les composants dont vous avez besoin pour générer un fichier de paramètres de publication. (Si vous choisissez Personnalisé à la place, vous pouvez voir la liste des composants, comme montré dans l’illustration suivante.)

    Screenshot showing Web Deploy 4.0 components

  4. (Facultatif) Vérifiez que Web Deploy s’exécute correctement en ouvrant Panneau de configuration > Système et sécurité > Outils d’administration > Services, puis en vérifiant que :

    • Le Service agent de déploiement web est en cours d’exécution (le nom du service est différent dans les versions antérieures).

    • Le Service de gestion web est en cours d’exécution.

    Si l’un des services d’agent n’est pas en cours d’exécution, redémarrez le service agent de déploiement web.

    Si le service agent de déploiement web n’est pas présent, accédez à Panneau de configuration > Programmes > Désinstaller un programme, recherchez Microsoft Web Deploy <version>. Choisissez Changer l’installation et veillez à choisir Sera installé sur le disque dur local pour les composants Web Deploy. Effectuez les étapes relatives au changement de l’installation.

Créer le fichier de paramètres de publication dans IIS sur Windows Server

  1. Fermez et rouvrez la console de gestion IIS pour afficher les options de configuration mises à jour dans l’IU.

  2. Dans IIS, cliquez avec le bouton droit sur le site web par défaut, choisissez Déployer>Activer la publication Web Deploy.

    Configure Web Deploy configuration

    Si vous ne voyez pas le menu Déployer, consultez la section précédente pour vérifier que Web Deploy est en cours d’exécution.

  3. Dans la boîte de dialogue Activer la publication Web Deploy, examinez les paramètres.

  4. Cliquez sur Setup.

    Dans le panneau Résultats, la sortie indique que les droits d’accès sont accordés à l’utilisateur spécifié et qu’un fichier ayant l’extension .publishsettings a été généré à l’emplacement indiqué dans la boîte de dialogue.

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    En fonction de votre configuration Windows Server et IIS, vous voyez des valeurs distinctes dans le fichier XML. Voici quelques détails sur les valeurs que vous voyez :

    • Le fichier msdeploy.axd référencé dans l’attribut publishUrl est un fichier de gestionnaire HTTP généré dynamiquement pour Web Deploy. (À des fins de test, http://myhostname:8172 fonctionne également, en règle générale.)

    • Le port publishUrl a la valeur 8172, ce qui correspond au port par défaut de Web Deploy.

    • Le port destinationAppUrl a la valeur 80, ce qui correspond au port par défaut d’IIS.

    • Dans les étapes suivantes, si vous ne parvenez pas à vous connecter à l’hôte distant dans Visual Studio en utilisant le nom d’hôte, testez l’adresse IP du serveur à la place du nom d’hôte.

      Notes

      Si vous publiez sur IIS s’exécutant sur une machine virtuelle Azure, vous devez ouvrir un port entrant pour Web Deploy et IIS dans le groupe de sécurité réseau. Pour plus d’informations, consultez Ouvrir des ports sur une machine virtuelle.

  5. Copiez ce fichier sur l’ordinateur où vous exécutez Visual Studio.

Importer les paramètres de publication dans Visual Studio et déployer

  1. Sur l’ordinateur sur lequel le projet ASP.NET est ouvert dans Visual Studio, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis choisissez Publier.

    Si vous avez déjà configuré des profils de publication, le volet Publier s’affiche. Cliquez sur Nouveau ou Créer un nouveau profil.

  2. Sélectionnez l’option permettant d’importer un profil.

    Dans la boîte de dialogue Publier, cliquez sur Importer un profil.

    Choose Publish

  3. Accédez à l’emplacement du fichier de paramètres de publication que vous avez créé dans la section précédente.

  4. Dans la boîte de dialogue Importer le fichier de paramètres de publication, accédez au profil que vous avez créé dans la section précédente et sélectionnez-le, puis cliquez sur Ouvrir.

    Cliquez sur Terminer pour enregistrer le profil de publication, puis sur Publier.

    Visual Studio commence le processus de déploiement, tandis que la fenêtre Sortie affiche la progression et les résultats.

    Si vous obtenez des erreurs de déploiement, cliquez sur Plus d’actions>Modifier pour modifier les paramètres. Modifiez les paramètres, puis cliquez sur Valider pour tester les nouveaux paramètres. Si le nom d’hôte est introuvable, cherchez l’adresse IP au lieu du nom d’hôte dans les champs Serveur et URL de destination.

    Edit settings in the Publish tool

Une fois l’application déployée, elle doit démarrer automatiquement.

Problèmes courants

Tout d’abord, consultez les informations d’état dans la fenêtre Sortie dans Visual Studio, puis consultez vos messages d’erreur. De plus :

  • Si vous ne pouvez pas vous connecter à l’hôte avec le nom d’hôte, essayez plutôt l’adresse IP.
  • Vérifiez que les ports obligatoires sont ouverts sur le serveur distant.
  • Pour ASP.NET Core, dans IIS, vous devez vérifier que le champ Pool d’applications pour DefaultAppPool est défini sur Aucun code managé.
  • Vérifiez que la version d’ASP.NET utilisée dans votre application est la même que la version que vous avez installée sur le serveur. Pour votre application, vous pouvez voir et définir la version dans la page Propriétés. Pour définir l’application sur une autre version, cette version doit être installée.
  • Si l’application a tenté de s’ouvrir, mais que vous voyez un avertissement de certificat, choisissez de faire confiance au site. Si vous avez déjà fermé l’avertissement, vous pouvez modifier le fichier *.pubxml dans votre projet et ajouter l’élément suivant : <AllowUntrustedCertificate>true</AllowUntrustedCertificate>. Ce paramètre est seulement pour les tests !
  • Si l’application ne démarre pas à partir de Visual Studio, démarrez l’application dans IIS pour vérifier qu’elle a été correctement déployée.