In passato, durante la pubblicazione di progetti, i file venivano copiati e incollati nella directory del sito, o caricati nella directory tramite FTP, ma ora, con l'emergere di integrazione continua, gestione e manutenzione automatizzate e pubblicazione automatizzata, anche i progetti di pubblicazione cambiano giorno dopo giorno.
Questo articolo descrive come pubblicare da remoto su un sito IIS remoto tramite VS 2019.
Sistema server remoto: Windows Server 2019 a 64 bit
Configurazione del server
1. Aggiungere IIS, installare il framework .NET (omesso)
2. Scarica e installa Web Deploy
Web Deployment può essere utilizzato per distribuire progetti web localmente e da remoto al seguente indirizzo:Il login del link ipertestuale è visibile.
Al momento dell'installazione, selezionare"Completato"Dopo l'installazione, vedrai il servizio "Web Management Service" nel servizio, come mostrato nella figura sottostante:
Se non viene installato, VS riceverà il seguente errore quando pubblichi da remoto:
--------------------------- Microsoft Visual Studio --------------------------- Non si è connettuto al computer remoto ("xx"). Assicurati che Web Deploy sia installato sulla macchina remota e che il processo richiesto ("Web Management Service") venga avviato. Scopri di più su:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Impossibile connettersi ai server remoti --------------------------- Sei sicuro ---------------------------
3. Installare "IIS Management Scripts and Tools"
Seleziona Ruoli Server > Web Server (IIS) > Strumenti Amministrativi, poi seleziona il ruolo Script e Strumenti Amministrativi IIS, clicca su Avanti e installa il ruolo.
4. IIS abilita connessioni remote
Localizza il servizio di gestione in IIS e abilita le connessioni remote, come mostrato nell'immagine seguente:
(Nota:Apri la porta in ingresso 8172 nel firewall e nel gruppo di sicurezza)
5. Creare un nuovo sito IIS
Crea un nuovo sito chiamato test1, come mostrato nella figura seguente:
6. IIS aggiunge utenti amministrativi
Aggiungi un utente di IIS Manager, come mostrato nell'immagine seguente:
Allo stesso tempo, sul sito test1, aggiungi l'autorizzazione, come mostrato nella figura sottostante:
Se non aggiungi l'autorizzazione, il seguente errore verrà segnalato quando pubblichi da remoto:
--------------------------- Microsoft Visual Studio --------------------------- Ti sei collegato a un computer remoto ("xxx") tramite il servizio di gestione web, ma non hai autorizzato. Assicurati di usare il nome utente e la password corretti, che il sito a cui sei collegato esista già e che l'utente le cui credenziali rappresentano abbia accesso al sito. Scopri di più su:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Il server remoto restituisce un errore: (401) Non autorizzato. --------------------------- Sei sicuro --------------------------- Rilascio ASP.NET progetto MVC
Per prima cosa, crea un nuovo progetto MVC .NET 4.6.2 asp.net con il nome WebAutomatedDeployment usando VS 2019,
Crea due nuove biblioteche e il programma web fa riferimento a queste due biblioteche contemporaneamente. (Creare e fare riferimento a 2 librerie perché la simulazione è più vicina al progetto ufficiale)
Prova a iniziare il progetto come mostrato qui sotto:
Clicca con il tasto destro sul progetto, seleziona Pubblica, Web Server (IIS)-> Web Deployment e compila le informazioni sul server, come mostrato nella figura seguente:
Verifica la connessione e il test supera, come mostrato nell'immagine seguente:
Quando ho provato a pubblicare, l'errore è stato il seguente:
Il compito di distribuzione web è fallito. ((2020/10/9 11:34:38) Richiesta di elaborazione errore su computer remoto. )
(9/10/2020 11:34:38) Richiesta di elaborazione errore su computer remoto. Il server ha difficoltà a elaborare la richiesta. Contatta l'amministratore del server per maggiori dettagli. WebAutomatedDeployment 0 Puoi visualizzare errori specifici tramite il Server Event Viewer, come mostrato nella figura seguente:
User: itsvse IP cliente: 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: Si è verificata un'eccezione di agente di distribuzione di traccia propagata al client. ID richiesta "def8d9f7-1a72-4b19-8b75-919f8c6a9604", richiesta timestamp: "2020/10/9 11:51:29". Dettagli dell'errore:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 In System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, nome stringa, handle SafeHandle, SecurityInfos securityInformation, proprietario di SecurityIdentifique, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) su System.Security.AccessControl.NativeObjectSecurity.Persist(Nome stringa, handle SafeHandle, AccessControlSezioni includeSections, Object exceptionContext) In System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) su Microsoft.Web.Deployment.DeploymentObject.Update(sorgente DeploymentObject, DeploymentSyncContext syncContext) su Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) su Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, sorgente DeploymentObject) su Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObjectDestinationObject, DeploymentObjectSourceObject) In Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, StringSessionId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, Stringa utente, Stringa siteName) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Soluzione:
Riavvia VS Tools, clicca su Pubblica e apparirà la seguente immagine:
Controlla "Conserva questo certificato per le future sessioni di Visual Studia" può essere risolto.
La prima volta che è stato pubblicato, è stato lento perché tutti i file dovevano essere caricati sul server, come mostrato nella figura sottostante:
Prova a modificare il file di pagina Index.cshtml e clicca su Republish, solo i seguenti 3 file verranno aggiornati, come mostrato nella figura sottostante:
Aggiorna il sito web e scopri che è stato aggiornato, come mostrato di seguito:
(Fine)
|