Tidigare, när man publicerade projekt, kopierades och klistrades filer in i webbplatskatalogen, eller laddades upp till webbplatskatalogen via FTP, men nu, med framväxten av kontinuerlig integration, automatiserad drift och underhåll samt automatiserad publicering, förändras också publiceringsprojekt för varje dag som går.
Den här artikeln beskriver hur man publicerar på distans till en fjärransluten IIS-plats via VS 2019.
Fjärrserversystem: Windows Server 2019 64-bitars
Serverkonfiguration
1. Lägg till IIS, installera .NET-ramverket (utelämnat)
2. Ladda ner och installera Web Deploy
Web Deploy kan användas för att distribuera webbprojekt lokalt och på distans på följande adress:Inloggningen med hyperlänken är synlig.
Vid installationstillfället, välj"Fullständig"Efter installationen kommer du att se tjänsten "Web Management Service" i tjänsten, som visas i figuren nedan:
Om den inte är installerad får VS följande felmeddelande vid fjärrpublicering:
--------------------------- Microsoft Visual Studio --------------------------- Misslyckades med att ansluta till fjärrdatorn ("xx"). Se till att Web Deploy är installerat på den fjärranslutna maskinen och att den nödvändiga processen ("Web Management Service") startas. Läs mer på:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Kan inte ansluta till fjärrservrar --------------------------- Är du säker ---------------------------
3. Installera "IIS Management Scripts and Tools"
Gå till Välj Serverroller > Webbserver (IIS) > Administrativa verktyg, välj sedan rollen IIS Administrativa skript och verktyg, klicka på Nästa och installera rollen.
4. IIS möjliggör fjärranslutningar
Lokalisera hanteringstjänsten i IIS och aktivera fjärranslutningar, som visas i följande bild:
(Not:Öppna 8172-inkommande porten i brandväggs- och säkerhetsgruppen)
5. Skapa en ny IIS-sajt
Skapa en ny webbplats med namnet test1, som visas i följande figur:
6. IIS lägger till administrativa användare
Lägg till en IIS Manager-användare, som visas i följande bild:
Samtidigt, på test1-sidan, lägg till auktorisation, som visas i figuren nedan:
Om du inte lägger till auktorisation kommer följande fel att rapporteras när du publicerar på distans:
--------------------------- Microsoft Visual Studio --------------------------- Du har anslutit dig till en fjärrdator ("xxx") med webbhanteringstjänsten, men har misslyckats med att godkänna den. Se till att du använder rätt användarnamn och lösenord, att webbplatsen du är ansluten till redan existerar, och att användaren vars inloggningsuppgifter representerar har tillgång till sidan. Läs mer på:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Den fjärrservern ger ett felmeddelande: (401) Oauktoriserad. --------------------------- Är du säker --------------------------- Lansering ASP.NET MVC-projektet
Först, skapa ett nytt .NET 4.6.2 asp.net mvc-projekt med namnet WebAutomatedDeployment med hjälp av VS 2019,
Skapa två nya bibliotek, och webbplatsprogrammet refererar till dessa två bibliotek samtidigt. (Skapa och referera till 2 bibliotek eftersom simuleringen ligger närmare det officiella projektet)
Försök att starta projektet enligt nedan:
Högerklicka på projektet, välj Publicera, webbserver (IIS)-> webbdistribution och fyll i serverinformationen, som visas i följande figur:
Verifiera anslutningen och testet klarar sig, som visas i följande bild:
När jag försökte publicera var felet följande:
Webbdistributionsuppgiften misslyckades. ((2020/10/9 11:34:38) Felbehandlingsbegäran på fjärrdator. )
(2020/10/9 11:34:38) Felbehandlingsbegäran på fjärrdator. Servern har problem med att behandla förfrågan. Kontakta din serveradministratör för detaljer. WebAutomatedDeployment 0 Du kan se specifika fel via Server Event Viewer, som visas i följande figur:
User: itsvse Klient-IP: 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: Ett undantag för trace deployment agent som propagerades till klienten inträffade. Förfrågan-ID "def8d9f7-1a72-4b19-8b75-919f8c6a9604", begäran, tidsstämpel: "2020/10/9 11:51:29". Feluppgifter:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 I System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType-typ, Strängnamn, SafeHandle-handtag, SecurityInfos securityInformation, SecurityIdentifier-ägare, SecurityIdentifier-gruppen, GenericAcl sacl, GenericAcl dacl) på System.Security.AccessControl.NativeObjectSecurity.Persist(Strängnamn, SafeHandle-handtag, AccessControlSections includes, Object exceptionContext) I System.Security.AccessControl.NativeObjectSecurity.Persist(Strängnamn, AccessControlSections includes, Object exceptionContext) på Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(Strängväg, Boolean isFile) på Microsoft.Web.Deployment.SetAclProvider.Add (DeploymentObject-källa, boolesk whatIf) på Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext) på Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) på Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) på Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) I Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId) på Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName) på Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) på Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Lösning:
Starta om VS Tools, klicka på Publicera, och följande bild dyker upp:
Check "Spara detta certifikat för framtida sessioner i Visual Studia" kan lösas.
Första gången den publicerades var den långsam eftersom alla filer behövde laddas upp till servern, som visas i figuren nedan:
Försök att ändra sidfilen Index.cshtml och klicka på Publicera igen, endast följande 3 filer kommer att uppdateras, som visas i figuren nedan:
Uppdatera webbplatsen och se att den har uppdaterats, som visas nedan:
(Slut)
|