Autrefois, lors de la publication de projets, les fichiers étaient copiés-collés dans le répertoire du site, ou téléchargés dans le répertoire via FTP, mais aujourd’hui, avec l’émergence de l’intégration continue, de l’automatisation de l’exploitation et de la maintenance, et de l’édition automatisée, les projets de publication évoluent également chaque jour.
Cet article décrit comment publier à distance sur un site IIS distant via VS 2019.
Système de serveur distant : Windows Server 2019 64 bits
Configuration du serveur
1. Ajouter IIS, installer le framework .NET (omis)
2. Télécharger et installer Déploiement Web
Le déploiement Web peut être utilisé pour déployer des projets web localement et à distance à l’adresse suivante :La connexion hyperlientérée est visible.
Au moment de l’installation, sélectionnez« Complet »Après l’installation, vous verrez le service « Web Management Service » dans le service, comme montré dans la figure ci-dessous :
S’il n’est pas installé, VS obtiendra l’erreur suivante lors de la publication à distance :
--------------------------- Microsoft Visual Studio --------------------------- Échec de se connecter à l’ordinateur distant (« xx »). Assurez-vous que Web Deploy est installé sur la machine distante et que le processus requis (« Web Management Service ») est lancé. Pour en savoir plus, consultez :https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Impossible de se connecter aux serveurs distants --------------------------- Es-tu sûr ---------------------------
3. Installer des « scripts et outils de gestion IIS »
Allez dans Sélectionner Rôles de serveur > Serveur Web (IIS) > Outils administratifs, puis sélectionnez le rôle Scripts et Outils Administratifs IIS, cliquez sur Suivant, et installez le rôle.
4. IIS permet des connexions à distance
Localisez le service de gestion dans IIS et activez les connexions distantes, comme montré sur l’image suivante :
(Note :Ouvrez le port entrant 8172 dans le pare-feu et le groupe de sécurité)
5. Créer un nouveau site IIS
Créez un nouveau site nommé test1, comme montré dans la figure suivante :
6. IIS ajoute des utilisateurs administratifs
Ajoutez un utilisateur IIS Manager, comme montré sur l’image suivante :
En même temps, sur le site test1, ajoutez l’autorisation, comme montré dans la figure ci-dessous :
Si vous n’ajoutez pas d’autorisation, l’erreur suivante sera signalée lorsque vous publiez à distance :
--------------------------- Microsoft Visual Studio --------------------------- Vous vous êtes connecté à un ordinateur distant (« xxx ») via le service de gestion web, mais vous n’avez pas autorisé cette notification. Assurez-vous d’utiliser le bon nom d’utilisateur et mot de passe, que le site auquel vous êtes connecté existe déjà, et que l’utilisateur dont les identifiants sont représentés a accès au site. Pour en savoir plus, consultez :https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Le serveur distant renvoie une erreur : (401) Non autorisé. --------------------------- Es-tu sûr --------------------------- Sortie ASP.NET projet MVC
Tout d’abord, créer un nouveau projet MVC .NET 4.6.2 asp.net sous le nom WebAutomatedDeployment utilisant VS 2019,
Créez deux nouvelles bibliothèques, et le programme web fait référence à ces deux bibliothèques en même temps. (Créer et référencer 2 bibliothèques car la simulation est plus proche du projet officiel)
Essayez de commencer le projet comme montré ci-dessous :
Faites un clic droit sur le projet, sélectionnez Publier, Serveur Web (IIS)-> Déploiement Web, et remplissez les informations du serveur, comme montré dans la figure suivante :
Vérifiez la connexion et le test réussit, comme montré sur l’image suivante :
Lorsque j’ai essayé de publier, l’erreur était la suivante :
La tâche de déploiement web a échoué. ((9/10/2020 11:34:38) Demande de traitement d’erreur sur ordinateur distant. )
(9/10/2020 11:34:38) Demande de traitement d’erreur sur ordinateur distant. Le serveur a du mal à traiter la demande. Contactez votre administrateur serveur pour plus de détails. WebAutomatedDeployment 0 Vous pouvez voir des erreurs spécifiques via l’Observateur d’événements serveur, comme montré sur la figure suivante :
User: itsvse IP client : xxx
Content-Type: application/msdeploy
Version: 9.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 9.0.3802.0
MSDeploy.Method: Sync
MSDeploy.RequestId: def8d9f7-1a72-4b19-8b75-919f8c6a9604
MSDeploy.RequestCulture: zh-CN
MSDeploy.RequestUICulture: zh-CN
ServerVersion: 9.0.1973.0
Skip: objectName="^configProtectedData$"
Provider: auto, Path: Une exception d’agent de déploiement de trace propagée au client s’est produite. ID de demande « def8d9f7-1a72-4b19-8b75-919f8c6a9604 », horodatage de demande : « 2020/10/9 11:51:29 ». Détails de l’erreur :
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 Dans System.Security.AccessControl.Win32.SetSecurityInfo(type de type de type, nom de chaîne, handle SafeHandle, SecurityInfos securityInformation, propriétaire de SecurityIdentifier, groupe SecurityIdentifier, GenericAcl sacl, GenericAcl dacl) at System.Security.AccessControl.NativeObjectSecurity.Persist(Nom de la chaîne, handle SafeHandle, AccessControlSections inclusSections, Object exceptionContext) Dans System.Security.AccessControl.NativeObjectSecurity.Persist(Nom de la chaîne, AccessControlSections incluentSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(chemin de chaînes, fichier isFile booléen) at Microsoft.Web.Deployment.SetAclProvider.Add(SourceDeploymentObject, Boolean whatIf) sur Microsoft.Web.Deployment.DeploymentObject.Update(source DeploymentObject, DeploymentSyncContext syncContext) sur Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObjectSourceObject) sur Microsoft.Web.Deployment.DeploymentSyncContext.SyncOrder(DeploymentObject dest, source DeploymentObject) sur Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DestinationObjectDeploymentObject, DeploymentObjectSourceObject) Dans Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Solution:
Redémarrez VS Tools, cliquez sur Publier, et l’image suivante apparaîtra :
Vérifie "Conservez ce certificat pour les prochaines sessions en Visual Studia» peut être résolu.
La première fois qu’il a été publié, c’était lent car tous les fichiers devaient être téléchargés sur le serveur, comme le montre la figure ci-dessous :
Essayez de modifier le fichier de page Index.cshtml et cliquez sur Republier, seuls les 3 fichiers suivants seront mis à jour, comme montré dans la figure ci-dessous :
Actualisez le site web et constatez qu’il a été mis à jour, comme indiqué ci-dessous :
(Fin)
|