V preteklosti so se pri objavljanju projektov datoteke kopirale in lepile v imenik strani ali nalagale prek FTP, zdaj pa se z nastopom neprekinjene integracije, avtomatiziranega delovanja in vzdrževanja ter avtomatiziranega objavljanja tudi projekti objavljanja spreminjajo iz dneva v dan.
Ta članek opisuje, kako objaviti na daljavo na oddaljeno IIS lokacijo preko VS 2019.
Oddaljeni strežniški sistem: Windows Server 2019 64-bit
Konfiguracija strežnika
1. Dodajte IIS, namestite .NET framework (izpuščeno)
2. Prenesite in namestite spletno namestitev
Web Deploy se lahko uporablja za lokalno in oddaljeno nameščanje spletnih projektov na naslednji naslov:Prijava do hiperpovezave je vidna.
Ob namestitvi izberite"Popolno"Po namestitvi boste v storitvi videli storitev "Web Management Service", kot je prikazano na spodnji sliki:
Če ni nameščen, bo VS pri oddaljeni objavi dobil naslednjo napako:
--------------------------- Microsoft Visual Studio --------------------------- Povezava z oddaljenim računalnikom ("xx") ni uspela. Prepričajte se, da je Web Deployment nameščen na oddaljenem računalniku in da se začne zahtevani postopek ("Web Management Service"). Več informacij najdete na:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Ni mogoče vzpostaviti povezave z oddaljenimi strežniki --------------------------- Si prepričan ---------------------------
3. Namestitev "IIS upravljavskih skript in orodij"
Pojdite na Izbiro strežniških vlog > spletnem strežniku (IIS) > Administrativna orodja, nato izberite vlogo IIS Administrativne skripte in orodja, kliknite Naprej in namestite vlogo.
4. IIS omogoča oddaljene povezave
Poiščite storitev upravljanja v IIS in omogočite oddaljene povezave, kot je prikazano na naslednji sliki:
(Opomba:Odpri vhodni port 8172 v skupini požarnega zidu in varnosti)
5. Ustvariti novo IIS stran
Ustvarite novo spletno stran z imenom test1, kot je prikazano na naslednji sliki:
6. IIS dodaja administrativne uporabnike
Dodajte uporabnika upravitelja IIS, kot je prikazano na naslednji sliki:
Hkrati na strani test1 dodajte avtorizacijo, kot je prikazano na spodnji sliki:
Če avtorizacije ne dodate, bo ob oddaljeni objavi prijavljena naslednja napaka:
--------------------------- Microsoft Visual Studio --------------------------- Povezali ste se z oddaljenim računalnikom ("xxx") preko storitve spletnega upravljanja, vendar ga niste uspeli avtorizirati. Prepričajte se, da uporabljate pravilno uporabniško ime in geslo, da stran, na katero ste povezani, že obstaja in da ima uporabnik, katerega poverilnice predstavljajo, dostop do strani. Več informacij najdete na:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Oddaljeni strežnik vrne napako: (401) Nepooblaščeno. --------------------------- Si prepričan --------------------------- Sproščanje projekta ASP.NET MVC
Najprej ustvarite nov .NET 4.6.2 asp.net mvc projekt z imenom WebAutomatedDeployment z uporabo VS 2019,
Ustvarite dve novi knjižnici, spletni program pa istočasno sklicuje na ti dve knjižnici. (Ustvari in referencira dve knjižnici, ker je simulacija bližje uradnemu projektu)
Poskusite začeti projekt, kot je prikazano spodaj:
Desni klik na projekt, izberite Objavi, Spletni strežnik (IIS)-> Spletna namestitev in vnesite podatke o strežniku, kot je prikazano na naslednji sliki:
Preverite povezavo in test uspešno opravi, kot je prikazano na naslednji sliki:
Ko sem poskušal objaviti, je bila napaka naslednja:
Naloga namestitve spletnih strani ni uspela. ((2020/10/9 11:34:38) Zahteva za obdelavo napak na oddaljenem računalniku. )
(9. 10. 2020 11:34:38) Zahteva za obdelavo napak na oddaljenem računalniku. Strežnik ima težave z obdelavo zahteve. Za podrobnosti se obrnite na svojega strežniškega administratorja. WebAutomatedDeployment 0 Specifične napake si lahko ogledate prek Pregledovalnika dogodkov strežnika, kot je prikazano na naslednji sliki:
User: itsvse IP odjemalca: 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: Prišlo je do izjeme agenta za uvajanje sledi, ki je bila posredovana odjemalcu. ID zahteve "def8d9f7-1a72-4b19-8b75-919f8c6a9604", časovni žig zahteve: "2020/10/9 11:51:29". Podrobnosti o napaki:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 V System.Security.AccessControl.Win32.SetSecurityInfo(Tip vira, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier skupina, GenericAcl sacl, GenericAcl dacl) na System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) V System.Security.AccessControl.NativeObjectSecurity.Persist(Ime niza, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) na Microsoft.Web.Deployment.DeploymentObject.Update (DeploymentObject source, DeploymentSyncContext syncContext) na Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) na Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) na Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DestinationObject, DeploymentObject sourceObject) V Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, 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) Rešitev:
Ponovno zaženi VS Orodja, klikni Objavi in pojavi se naslednja slika:
Preveri "Ta certifikat shranite za prihodnje ure v Visual Studia" se lahko reši.
Prvič, ko je bila objavljena, je bila počasna, ker je bilo treba vse datoteke naložiti na strežnik, kot je prikazano na spodnji sliki:
Poskusite spremeniti datoteko strani Index.cshtml in kliknite Ponovno objavi, posodobljene bodo le naslednje 3 datoteke, kot je prikazano na spodnji sliki:
Osvežite spletno stran in ugotovite, da je bila posodobljena, kot je prikazano spodaj:
(Konec)
|