V minulosti sa pri publikovaní projektov súbory kopírovali a vkladali do adresára stránky alebo nahrávali do adresára cez FTP, no dnes, s nástupom kontinuálnej integrácie, automatizovanej prevádzky a údržby a automatizovaného publikovania, sa aj publikačné projekty menia každým dňom.
Tento článok popisuje, ako publikovať na diaľku na vzdialené miesto IIS prostredníctvom VS 2019.
Vzdialený serverový systém: Windows Server 2019 64-bit
Konfigurácia servera
1. Pridať IIS, nainštalovať .NET framework (vynechané)
2. Stiahnuť a nainštalovať Web Deploy
Web Deploy je možné použiť na lokálne aj vzdialené nasadenie webových projektov na nasledujúcej adrese:Prihlásenie na hypertextový odkaz je viditeľné.
Pri inštalácii vyberte"Dokončené"Po inštalácii uvidíte službu "Web Management Service" v službe, ako je znázornené na obrázku nižšie:
Ak nie je nainštalovaný, VS zobrazí pri vzdialenom publikovaní nasledujúcu chybu:
--------------------------- Microsoft Visual Studio --------------------------- Nepodarilo sa mi pripojiť k vzdialenému počítaču ("xx"). Uistite sa, že na vzdialenom počítači je nainštalovaný Web Deploy a že sa spustí požadovaný proces ("Web Management Service"). Viac informácií nájdete na:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Nemožnosť pripojiť sa k vzdialeným serverom --------------------------- Si si istý ---------------------------
3. Inštalácia "IIS Management Scripts and Tools"
Prejdite na výber Server Roles > Web Server (IIS) > Admin Tools, potom vyberte rolu IIS Administrative Scripts and Tools, kliknite na Ďalej a nainštalujte rolu.
4. IIS umožňuje vzdialené pripojenia
Nájdite správcovskú službu v IIS a povolte vzdialené pripojenia, ako je znázornené na nasledujúcom obrázku:
(Poznámka:Otvorte prichádzajúci port 8172 v skupine firewall a bezpečnosť)
5. Vytvoriť novú lokalitu IIS
Vytvorte novú stránku s názvom test1, ako je znázornené na nasledujúcom obrázku:
6. IIS pridáva administrátorských používateľov
Pridajte používateľa Správcu IIS, ako je znázornené na nasledujúcom obrázku:
Zároveň na stránke test1 pridajte autorizáciu, ako je znázornené na obrázku nižšie:
Ak autorizáciu nepridáte, pri vzdialenom publikovaní sa zobrazí nasledujúca chyba:
--------------------------- Microsoft Visual Studio --------------------------- Pripojili ste sa k vzdialenému počítaču ("xxx") pomocou služby správy webu, ale nepodarilo sa vám ho autorizovať. Uistite sa, že používate správne používateľské meno a heslo, že stránka, na ktorú ste pripojení, už existuje, a že používateľ, ktorého prihlasovacie údaje predstavujú, má prístup k tejto stránke. Viac informácií nájdete na:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Vzdialený server vracia chybu: (401) Neautorizované. --------------------------- Si si istý --------------------------- Vydanie ASP.NET projektu MVC
Najprv vytvoriť nový .NET 4.6.2 asp.net mvc projekt s názvom WebAutomatedDeployment pomocou VS 2019,
Vytvorte dve nové knižnice a program na webovej stránke odkazuje na tieto dve knižnice súčasne. (Vytvorte a odkazujte na 2 knižnice, pretože simulácia je bližšie k oficiálnemu projektu)
Skúste začať projekt tak, ako je uvedené nižšie:
Kliknite pravým tlačidlom myši na projekt, vyberte Publikovať, Web Server (IIS)-> Web Deployment a vyplniť informácie o serveri, ako je znázornené na nasledujúcom obrázku:
Overte spojenie a test prejde, ako je znázornené na nasledujúcom obrázku:
Keď som sa pokúsil publikovať, chyba bola nasledovná:
Úloha nasadenia webu zlyhala. ((2020/10/9 11:34:38) Požiadavka na spracovanie chýb na vzdialenom počítači. )
(9.10.2020 11:34:38) Žiadosť o spracovanie chýb na vzdialenom počítači. Server má problémy so spracovaním požiadavky. Pre viac informácií kontaktujte svojho správcu servera. WebAutomatedDeployment 0 Konkrétne chyby si môžete pozrieť cez Server Event Viewer, ako je znázornené na nasledujúcom obrázku:
User: itsvse IP klienta: 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: Došlo k výnimke agenta pre nasadenie trasy, ktorá bola prenesená klientovi. ID požiadavky "def8d9f7-1a72-4b19-8b75-919f8c6a9604", časová značka požiadavky: "2020/10/9 11:51:29". Detaily chyby:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 V System.Security.AccessControl.Win32.SetSecurityInfo(typ zdroja, názov reťazca, SafeHandle handle, SecurityInfos securityInformation, vlastník SecurityIdentifier, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) na System.Security.AccessControl.NativeObjectSecurity.Persist(názov reťazca, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) V System.Security.AccessControl.NativeObjectSecurity.Persist(názov reťazca, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) at 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 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) Riešenie:
Reštartujte VS Tools, kliknite na Publikovať a zobrazí sa nasledujúci obrázok:
Skontroluj "Tento certifikát si uložte na budúce hodiny vo Visual Studia" sa dá vyriešiť.
Prvýkrát, keď bol zverejnený, bol pomalý, pretože všetky súbory bolo potrebné nahrať na server, ako je znázornené na obrázku nižšie:
Skúste upraviť súbor stránky Index.cshtml a kliknite na Znovu publikovať, aktualizujú sa iba nasledujúce 3 súbory, ako je znázornené na obrázku nižšie:
Obnovte webovú stránku a zistite, že bola aktualizovaná, ako je uvedené nižšie:
(Koniec)
|