Tidligere, når man publiserte prosjekter, ble filer kopiert og limt inn i nettstedskatalogen, eller lastet opp via FTP, men nå med fremveksten av kontinuerlig integrasjon, automatisert drift og vedlikehold, og automatisert publisering, endrer også publiseringsprosjekter seg for hver dag som går.
Denne artikkelen beskriver hvordan man kan publisere eksternt til et eksternt IIS-sted via VS 2019.
Fjernserversystem: Windows Server 2019 64-bit
Serverkonfigurasjon
1. Legg til IIS, installer .NET-rammeverket (utelatt)
2. Last ned og installer Web Deploy
Web Deploy kan brukes til å distribuere webprosjekter lokalt og eksternt på følgende adresse:Innloggingen med hyperkoblingen er synlig.
Ved installasjon, velg"Komplett"Etter installasjon vil du se tjenesten "Web Management Service" i tjenesten, som vist i figuren nedenfor:
Hvis den ikke er installert, vil VS få følgende feilmelding ved fjernpublisering:
--------------------------- Microsoft Visual Studio --------------------------- Klarte ikke å koble til den eksterne datamaskinen ("xx"). Sørg for at Web Deploy er installert på den eksterne maskinen og at den nødvendige prosessen ("Web Management Service") startes. Les mer på:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Kan ikke koble til eksterne servere --------------------------- Er du sikker ---------------------------
3. Installer "IIS Management Scripts and Tools"
Gå til Velg Serverroller > Webserver (IIS) > Administrative verktøy, velg deretter rollen IIS Administrative Skript og Verktøy, klikk Neste, og installer rollen.
4. IIS muliggjør fjerntilkoblinger
Finn administrasjonstjenesten i IIS og aktiver eksterne tilkoblinger, som vist i følgende bilde:
(Merk:Åpne 8172-innkommende port i brannmur- og sikkerhetsgruppen)
5. Opprett et nytt IIS-nettsted
Opprett et nytt nettsted kalt test1, som vist i følgende figur:
6. IIS legger til administrative brukere
Legg til en IIS Manager-bruker, som vist i bildet nedenfor:
Samtidig, på test1-nettstedet, legg til autorisasjon, som vist i figuren under:
Hvis du ikke legger til autorisasjon, vil følgende feil bli rapportert når du publiserer eksternt:
--------------------------- Microsoft Visual Studio --------------------------- Du har koblet deg til en ekstern datamaskin ("xxx") ved hjelp av webadministrasjonstjenesten, men har ikke autorisert den. Sørg for at du bruker riktig brukernavn og passord, at siden du er koblet til allerede eksisterer, og at brukeren som representerer legitimasjonen har tilgang til siden. Les mer på:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Den eksterne serveren returnerer en feilmelding: (401) Uautorisert. --------------------------- Er du sikker --------------------------- Utgivelse ASP.NET MVC-prosjektet
Først, lag et nytt .NET 4.6.2 asp.net mvc-prosjekt med navnet WebAutomatedDeployment ved bruk av VS 2019,
Opprett to nye biblioteker, og nettsideprogrammet refererer til disse to bibliotekene samtidig. (Opprett og referer til 2 biblioteker fordi simuleringen er nærmere det offisielle prosjektet)
Prøv å starte prosjektet som vist nedenfor:
Høyreklikk på prosjektet, velg Publish, Web Server (IIS)-> Web Deployment, og fyll inn serverinformasjonen, som vist i følgende figur:
Verifiser tilkoblingen, og testen består, som vist i bildet nedenfor:
Da jeg prøvde å publisere, var feilen som følger:
Webdistribusjonsoppgaven mislyktes. ((2020/10/9 11:34:38) Feilbehandlingsforespørsel på ekstern datamaskin. )
(2020/10/9 11:34:38) Feilbehandlingsforespørsel på ekstern datamaskin. Serveren har problemer med å behandle forespørselen. Kontakt serveradministratoren din for detaljer. WebAutomatedDeployment 0 Du kan se spesifikke feil gjennom Server Event Viewer, som vist i følgende 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: Et unntak for trace deployment agent som ble propagert til klienten, oppstod. Forespørsels-ID "def8d9f7-1a72-4b19-8b75-919f8c6a9604", forespørselstidsstempel: "2020/10/9 11:51:29". Feildetaljer:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 I System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, Strengnavn, SafeHandle-håndtak, SecurityInfos securityInformation, SecurityIdentifier-eier, SecurityIdentifier-gruppen, GenericAcl sacl, GenericAcl dacl) på System.Security.AccessControl.NativeObjectSecurity.Persist(Strengnavn, SafeHandle-håndtak, AccessControlSections includeSections, Object exceptionContext) I System.Security.AccessControl.NativeObjectSecurity.Persist(Strengnavn, AccessControlSections includesSections, Object exceptionContext) på Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(Strengsti, boolsk isFile) på Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject-kilde, boolsk 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:
Start VS Tools på nytt, klikk på Publish, og følgende bilde vil dukke opp:
Sjekk "Spar dette sertifikatet til fremtidige økter i Visual Studia" kan løses.
Første gang det ble publisert, var det tregt fordi alle filene måtte lastes opp til serveren, som vist i figuren under:
Prøv å endre sidefilen Index.cshtml og klikk på Republish, kun følgende 3 filer vil bli oppdatert, som vist i figuren under:
Oppdater nettsiden og se at den er oppdatert, som vist nedenfor:
(Slutt)
|