În trecut, la publicarea proiectelor, fișierele erau copiate și lipite în directorul site-ului sau încărcate în directorul site-ului prin FTP, dar acum, odată cu apariția integrării continue, operării și mentenanței automate și publicării automate, proiectele de publicare se schimbă cu fiecare zi ce trece.
Acest articol descrie cum să publici de la distanță pe un site IIS la distanță prin VS 2019.
Sistem de server la distanță: Windows Server 2019 pe 64 de biți
Configurația serverului
1. Adaugă IIS, instalează .NET framework (omis)
2. Descarcă și instalează Web Deploy
Web Deploy poate fi folosit pentru a implementa proiecte web local și de la distanță la următoarea adresă:Autentificarea cu hyperlink este vizibilă.
La momentul instalării, selectați"Complet"După instalare, veți vedea serviciul "Web Management Service" în serviciu, așa cum este ilustrat în figura de mai jos:
Dacă nu este instalat, VS va primi următoarea eroare la publicarea de la distanță:
--------------------------- Microsoft Visual Studio --------------------------- Nu s-a reușit să se conecteze la calculatorul de la distanță ("xx"). Asigurați-vă că Web Deploy este instalat pe mașina de la distanță și că procesul necesar ("Web Management Service") este pornit. Află mai multe la:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Imposibil de conectat la servere la distanță --------------------------- Eşti sigur ---------------------------
3. Instalarea "scripturilor și uneltelor de management IIS"
Mergi la Select Server Roles > Web Server (IIS) > Administrative Tools, apoi selectează rolul IIS Administrative Scripts and Tools, apasă pe Next și instalează rolul.
4. IIS permite conexiuni la distanță
Localizează serviciul de management în IIS și activează conexiunile la distanță, așa cum se arată în imaginea următoare:
(Notă:Deschide portul 8172 de intrare în firewall și grupul de securitate)
5. Crearea unui nou site IIS
Creează un nou site numit test1, așa cum se vede în următoarea figură:
6. IIS adaugă utilizatori administrativi
Adaugă un utilizator IIS Manager, așa cum este arătat în imaginea următoare:
În același timp, pe site-ul test1, adăugați autorizația, așa cum se vede în figura de mai jos:
Dacă nu adăugați autorizare, următoarea eroare va fi raportată atunci când publicați de la distanță:
--------------------------- Microsoft Visual Studio --------------------------- Te-ai conectat la un calculator la distanță ("xxx") folosind serviciul de administrare web, dar nu ai reușit să îl autorizezi. Asigură-te că folosești numele de utilizator și parola corecte, că site-ul la care ești conectat există deja și că utilizatorul ale cărui credențiale reprezintă are acces la site. Află mai multe la:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Serverul la distanță returnează o eroare: (401) Neautorizat. --------------------------- Eşti sigur --------------------------- Lansarea ASP.NET proiectul MVC
Mai întâi, creează un nou proiect mvc .NET 4.6.2 asp.net cu numele WebAutomatedDeployment folosind VS 2019,
Creează două biblioteci noi, iar programul site-ului web face referire la aceste două biblioteci în același timp. (Creează și referinează 2 biblioteci deoarece simularea este mai apropiată de proiectul oficial)
Încearcă să începi proiectul, așa cum se arată mai jos:
Faceți clic dreapta pe proiect, selectați Publish, Web Server (IIS)-> Web Deployment și completați informațiile serverului, așa cum se arată în figura următoare:
Verifică conexiunea și testul a trecut, așa cum se arată în imaginea următoare:
Când am încercat să public, eroarea a fost următoarea:
Sarcina de implementare web a eșuat. ((2020/10/9 11:34:38) Cerere de procesare a erorilor pe calculatorul de la distanță. )
(2020/10/9 11:34:38) Cerere de procesare a erorilor pe calculatorul de la distanță. Serverul are dificultăți în procesarea cererii. Contactați administratorul serverului pentru detalii. WebAutomatedDeployment 0 Puteți vizualiza erori specifice prin Server Event Viewer, așa cum se vede în următoarea figură:
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: A avut loc o excepție de agent de implementare de urmărire propagată către client. ID-ul cererii "def8d9f7-1a72-4b19-8b75-919f8c6a9604", cerere timestamp: "2020/10/9 11:51:29". Detalii despre eroare:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 În System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier proprietar, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) la System.Security.AccessControl.NativeObjectSecurity.Persist(Nume șir, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) În System.Security.AccessControl.NativeObjectSecurity.Persist(Nume șir, AccessControlSections includeSections, Object exceptionContext) la Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) la Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) la Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject sursă, DeploymentSyncContext syncContext) la Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) la Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject sursă) la Microsoft.Web.Deployment.DeploymentSyncContext.ProcesSync(DeploymentObjectDestinationObject, DeploymentObjectSourceObject) În Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId) la Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName) la Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) la Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Soluție:
Repornește VS Tools, apasă pe Publică și următoarea imagine va apărea:
Bifat "Păstrează acest certificat pentru sesiunile viitoare din Visual Studia" se poate rezolva.
Prima dată când a fost publicată, a fost lentă pentru că toate fișierele trebuiau încărcate pe server, așa cum se vede în figura de mai jos:
Încearcă să modifici fișierul de pagină Index.cshtml și apasă pe Republish, doar următoarele 3 fișiere vor fi actualizate, așa cum se arată în figura de mai jos:
Reîmprospătează site-ul și constată că a fost actualizat, așa cum se arată mai jos:
(Sfârșit)
|