Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 32993|Antwoord: 0

[Bron] Publiceer je project op een externe IIS-server met VS 2019

[Link kopiëren]
Geplaatst op 09-10-2020 12:09:22 | | | |
Vroeger werden bij het publiceren van projecten bestanden gekopieerd en geplakt naar de sitemap, of via FTP naar de sitemap geüpload, maar nu, met de opkomst van continue integratie, geautomatiseerde werking en onderhoud, en geautomatiseerd publiceren, veranderen publicatieprojecten ook met de dag die verstrijkt.

Dit artikel beschrijft hoe je op afstand kunt publiceren op een externe IIS-locatie via VS 2019.

Remote Server System: Windows Server 2019 64-bit

Serverconfiguratie

1. IIS toevoegen, .NET-framework installeren (weggelaten)

2. Download en installeer Web Deploy

Web Deploy kan worden gebruikt om webprojecten lokaal en op afstand te deployen op het volgende adres:De hyperlink-login is zichtbaar.



Selecteer bij de installatie"Compleet"Na installatie zie je de "Web Management Service"-dienst in de service, zoals weergegeven in de onderstaande figuur:



Als het niet geïnstalleerd is, krijgt VS de volgende foutmelding bij het op afstand publiceren:

---------------------------
Microsoft Visual Studio
---------------------------
Niet kunnen verbinden met de externe computer ("xx"). Zorg ervoor dat Web Deploy op de externe machine is geïnstalleerd en dat het vereiste proces ("Web Management Service") is gestart.  Lees meer op:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Kan geen verbinding maken met externe servers
---------------------------
Weet je het zeker   
---------------------------


3. Installeer "IIS Management Scripts and Tools"

Ga naar Selecteer Serverrollen > Webserver (IIS) > Beheerderstools, selecteer vervolgens de rol IIS Administratieve Scripts en Tools, klik op Volgende, en installeer de rol.



4. IIS maakt externe verbindingen mogelijk

Zoek de beheerservice in IIS en schakel externe verbindingen in, zoals weergegeven in de volgende afbeelding:





(Opmerking:Open de 8172 inkomende poort in de firewall- en beveiligingsgroep

5. Maak een nieuwe IIS-site aan

Maak een nieuwe site aan met de naam test1, zoals weergegeven in de volgende figuur:



6. IIS voegt administratieve gebruikers toe

Voeg een IIS Manager-gebruiker toe, zoals weergegeven in de volgende afbeelding:



Tegelijkertijd voegt u op de test1-site autorisatie toe, zoals te zien is in de onderstaande figuur:



Als je geen autorisatie toevoegt, wordt de volgende fout gemeld wanneer je op afstand publiceert:

---------------------------
Microsoft Visual Studio
---------------------------
Je hebt verbinding gemaakt met een externe computer ("xxx") via de webbeheerservice, maar hebt deze niet geautoriseerd. Zorg ervoor dat je de juiste gebruikersnaam en wachtwoord gebruikt, dat de site waarmee je verbonden bent al bestaat, en dat de gebruiker wiens inloggegevens de site vertegenwoordigen toegang heeft.  Lees meer op:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 De externe server geeft een foutmelding: (401) Niet geautoriseerd.
---------------------------
Weet je het zeker   
---------------------------
Release ASP.NET MVC-project

Maak eerst een nieuw .NET 4.6.2 asp.net mvc-project aan met de naam WebAutomatedDeployment met VS 2019,

Maak twee nieuwe bibliotheken aan, en het websiteprogramma verwijst tegelijkertijd naar deze twee bibliotheken. (Maak en raadpleeg 2 bibliotheken omdat de simulatie dichter bij het officiële project ligt)


Probeer het project te starten zoals hieronder getoond:



Klik met de rechtermuisknop op het project, selecteer Publiceren, Web Server (IIS)-> Web Deployment en vul de serverinformatie in, zoals weergegeven in de volgende figuur:



Controleer de verbinding en de test slaagt, zoals getoond in de volgende afbeelding:



Toen ik probeerde te publiceren, was de fout als volgt:

De webimplementatietaak is mislukt. ((2020/10/9 11:34:38) Foutverwerkingsverzoek op externe computer. )

(2020/10/9 11:34:38) Foutverwerkingsverzoek op externe computer.
De server heeft moeite met het verwerken van het verzoek. Neem contact op met je serverbeheerder voor meer informatie.        WebAutomatedDeployment 0
Je kunt specifieke fouten bekijken via de Server Event Viewer, zoals te zien is in de volgende figuur:



User: itsvse
Klant-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:
Er vond een trace deployment agent-uitzondering plaats die naar de client werd doorgegeven. Request ID "def8d9f7-1a72-4b19-8b75-919f8c6a9604", request timestamp: "2020/10/9 11:51:29". Foutgegevens:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。
   In System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, Stringnaam, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier eigenaar, SecurityIdentifier groep, GenericAcl sacl, GenericAcl dacl)
   op System.Security.AccessControl.NativeObjectSecurity.Persist(Stringnaam, SafeHandle-handvat, AccessControlSections includeSections, Object exceptionContext)
   In System.Security.AccessControl.NativeObjectSecurity.Persist(Stringnaam, AccessControlSections includeSections, Object exceptionContext)
   op Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(Stringpad, Boolean isFile)
   op Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject-bron, Boolean whatIf)
   op Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
   op Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
   op Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject bron)
   op Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
   In Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId)
   op Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName)
   op Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)
   op Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)
Oplossing:

Start VS Tools op, klik op Publiceren, en de volgende afbeelding verschijnt:



Check "Bewaar dit certificaat voor toekomstige sessies in Visual Studia" kan worden opgelost.

De eerste keer dat het werd gepubliceerd, was het traag omdat alle bestanden naar de server moesten worden geüpload, zoals te zien is in de onderstaande figuur:



Probeer het Index.cshtml-paginabestand aan te passen en klik op Herpubliceren; alleen de volgende 3 bestanden worden bijgewerkt, zoals weergegeven in de onderstaande figuur:



Vernieuw de website en zie dat deze is bijgewerkt, zoals hieronder getoond:



(Einde)




Vorig:Bouw een ocserv vpn-proxy op CentOS 7
Volgend:Aspose.Cellen Drie Musketiers
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com