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

Bekijken: 61848|Antwoord: 3

[.NET Core] ASP.NET Gedetailleerde uitleg van Core Middleware

[Link kopiëren]
Geplaatst op 18-09-2019 11:35:59 | | | |
Wat is Middleware?

Middleware is software die wordt samengesteld in applicatiepijplijnen om verzoeken en antwoorden af te handelen. Elk onderdeel:

  • Kies of je het verzoek doorgeeft aan de volgende component in de pijplijn.
  • Werk kan worden uitgevoerd vóór en na het aanroepen van de volgende component in de pijplijn.

Requestdelegates worden gebruikt om een requestpipeline op te bouwen die elk HTTP-verzoek afhandelt.

Requestdelegates worden geconfigureerd met behulp van de extensiemethoden Run, Map en Use. Een aparte requestdelegate kan worden gespecificeerd in een inline anonieme methode (inline middleware genoemd), of het kan worden gedefinieerd in een herbruikbare klasse. Deze herbruikbare klassen en inline anonimisatiemethoden zijn middleware of middlewarecomponenten. Elke middlewarecomponent in de request flow is verantwoordelijk voor het aanroepen van de volgende component in de pipeline en, indien van toepassing, de kortsluiting van de link.

Het migreren van HTTP-modules naar middleware legt het verschil uit tussen ASP.NET Core en request pipelines in eerdere versies (ASP.NET) en biedt meer voorbeelden van middleware.

Gebruik IApplicationBuilder om een middleware-pipeline te maken

Het ASP.NET Core-verzoekproces bestaat uit een reeks verzoekdelegates, zoals weergegeven in de volgende figuur (het uitvoeringsproces volgt de zwarte pijl):

Elke afgevaardigde kan acties uitvoeren vóór en na de volgende afgevaardigde. De delegate kan ook besluiten het verzoek niet door te geven aan de volgende delegate, wat een kortsluiting in de request pipeline wordt genoemd. Een kortsluiting is meestal wenselijk omdat het onnodig werk voorkomt. Bijvoorbeeld, statische bestandsmiddleware kan een verzoek voor een statisch bestand teruggeven en de rest van de pijplijn kortsluiten. Uitzonderingsbehandelingsdelegates moeten vroeg in de pijplijn worden aangeroepen, zodat ze uitzonderingen in latere pijplijnen kunnen opvangen.

Het eenvoudigste is waarschijnlijk om een delegate ASP.NET de Core-applicatie in te stellen die alle verzoeken afhandelt. Dit scenario omvat niet de daadwerkelijke aanvraagpijplijn. In plaats daarvan wordt voor elk HTTP-verzoek een anonieme methode aangeroepen.


De eerste app. Run delegate beëindigt de pipeline.

Er is code zoals deze:




Via de browser wordt geraadpleegd en blijkt dat het inderdaad in de eerste app zit. Run beëindigt de pijplijn.



Je kunt meerdere verzoeken delegeren via de app. Gebruik is met elkaar verbonden. De volgende parameter vertegenwoordigt de volgende delegate in de pipeline. (Houd er rekening mee dat je de pijplijn kunt beëindigen door de volgende parameter niet aan te roepen.) Je kunt meestal acties uitvoeren vóór en na de volgende delegatie, zoals te zien is in het volgende voorbeeld:

Een browser gebruiken om resultaten te bekijken zoals:



Het is duidelijk dat de uitvoeringsvolgorde van de requestdelegate het bovenstaande stroomdiagram volgt.

Notitie:

Nadat het antwoord naar de klant is gestuurd, bel dan niet meer. Invoke。 Nadat de reactie is gestart, zullen wijzigingen in de HttpResponse een uitzondering opleveren. Bijvoorbeeld, het instellen van responsheaders, statuscodes, enzovoort zal een uitzondering geven. Schrijf de antwoordtekst nadat je daarna hebt gebeld.

kan leiden tot een schending van de overeenkomst. Bijvoorbeeld schrijven over meer dan de inhoudslengte die in inhoudslengte wordt beschreven.

De opmaak van responsieve inhoud kan defect zijn. Schrijf bijvoorbeeld een HTML-voettekst in een CSS-bestand.

httpResponse.HasStarted is een nuttige hint om aan te geven of er een responsheader is verzonden en/of de tekst is geschreven.


Ingebouwde middleware

ASP.NET Core wordt geleverd met de volgende middlewarecomponenten:


Middlewarebeschrijving
AuthenticatieAuthenticatieondersteuning is beschikbaar
CORSConfigureer domeinoverschrijdende resource sharing
ResponscachingOndersteuning voor cache-respons is beschikbaar
ResponscompressieOndersteuning bieden voor responscompressie
RouteringDefinieer en beperk de routering van verzoeken
SessieBiedt gebruikerssessiebeheer
Statische bestandenBiedt ondersteuning voor statisch zoeken in bestanden en mappen
URL herschrijfmiddelwareGebruikt om URL's te herschrijven en ondersteuning voor redirects aan te vragen





Vorig:Baidu's nieuwe product! One Moment Album kan momenteel 1 miljoen gebruikers claimen onbeperkte opslag:
Volgend:Engels niveau 4 en 6 Luister- en Postgraduaatexamen Engelse Woordenschat Herexamen Mondelinge Data Uitwisseling
Geplaatst op 22-09-2021 20:47:00 |
Leer leren...
Geplaatst op 10-10-2021 18:55:42 |
Leer om te leren, in plaats van dit artikel opende een lidmaatschap
Geplaatst op 10-10-2021 18:59:21 |
https://www.cnblogs.com/stulzq/p/7760648.html
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