Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jótanács
Ez a tartalom egy részlet az eBookból, Blazor az Azure-hoz készült ASP NET Web Forms Developers számára, amely elérhető a .NET Docs-on vagy egy ingyenesen letölthető PDF-fájlként, amely offline is olvasható.
A ASP.NET Core-alkalmazás több köztes szoftverre épül. A köztes szoftver olyan kezelők, amelyek egy folyamatba vannak rendezve a kérések és válaszok kezeléséhez. Egy Web Forms-alkalmazásban a HTTP-kezelők és -modulok hasonló problémákat oldanak meg. Az ASP.NET Core-ban a modulok, kezelők, Global.asax.cs és az alkalmazás életciklusa köztes szoftverre cserélődik. Ebben a fejezetben egy alkalmazás kontextusában ismerkedhet meg a köztes szoftverrel Blazor .
Áttekintés
A ASP.NET Core kérelemfolyamat a kérések delegáltjainak sorozatából áll, amelyet egymás után hívunk meg. Az alábbi ábra a koncepciót mutatja be. A végrehajtás szála a fekete nyilakat követi.
Az előző diagram nem tartalmaz életciklus-eseményeket. Ez a fogalom alapvető fontosságú a webes űrlapok ASP.NET kéréseinek kezeléséhez. Ez a rendszer megkönnyíti a folyamat okának magyarázatát, és lehetővé teszi a köztes szoftver beszúrását bármikor. A köztes szoftver abban a sorrendben hajtja végre, amelyben hozzá van adva a kérelemfolyamathoz. A konfigurációs fájlok helyett kódban is hozzáadják őket, általában Startup.cs.
Katana
A Katana-t ismerő olvasók jól fogják érezni magukat ASP.NET Core-ban. Valójában a Katana egy keretrendszer, amelyből ASP.NET Core származik. Hasonló köztes szoftvereket és folyamatmintákat vezetett be a ASP.NET 4.x-hez. A Katanához tervezett köztes szoftver a ASP.NET Core-folyamathoz igazítható.
Gyakori köztes szoftver
ASP.NET 4.x számos modult tartalmaz. Hasonló módon a ASP.NET Core számos köztes szoftverösszetevővel is rendelkezik. Az IIS-modulok bizonyos esetekben használhatók a ASP.NET Core-ban. Más esetekben előfordulhat, hogy natív ASP.NET Core köztes szoftver érhető el.
Az alábbi táblázat a helyettesítő köztes szoftvereket és összetevőket sorolja fel a ASP.NET Core-ban.
Modul | ASP.NET 4.x modul | ASP.NET Core opció |
---|---|---|
HTTP-hibák | CustomErrorModule |
Állapotkódlapok köztes szoftver |
Alapértelmezett dokumentum | DefaultDocumentModule |
Alapértelmezett fájlok köztes szoftver |
Címtár-böngészés | DirectoryListingModule |
Címtár böngészése köztes szoftver |
Dinamikus tömörítés | DynamicCompressionModule |
Választömörítés köztes szoftver |
Sikertelen kérelmek nyomkövetése | FailedRequestsTracingModule |
ASP.NET alapszintű naplózás |
Fájl gyorsítótárazása | FileCacheModule |
Válaszgyorsítótárazó köztes szoftver |
HTTP-gyorsítótárazás | HttpCacheModule |
Válaszgyorsítótárazó köztes szoftver |
HTTP-naplózás | HttpLoggingModule |
ASP.NET alapszintű naplózás |
HTTP-átirányítás | HttpRedirectionModule |
URL-újraíró köztes szoftver |
ISAPI-szűrők | IsapiFilterModule |
Köztes szoftver |
ISAPI | IsapiModule |
Köztes szoftver |
Kérelmek szűrése | RequestFilteringModule |
A Middleware IRule URL-címének újraírása |
URL-újraírás† | RewriteModule |
URL-újraíró köztes szoftver |
Statikus tömörítés | StaticCompressionModule |
Választömörítés köztes szoftver |
Statikus tartalom | StaticFileModule |
Statikus fájl köztes szoftvere |
URL-engedélyezés | UrlAuthorizationModule |
ASP.NET Core Identity |
Ez a lista nem teljes, de képet ad arról, hogy milyen leképezés létezik a két keretrendszer között. Részletesebb listát az ASP.NET Core-t tartalmazó IIS-modulokban talál.
Egyéni köztes szoftver
Előfordulhat, hogy a beépített köztes szoftver nem kezeli az alkalmazáshoz szükséges összes forgatókönyvet. Ilyen esetekben érdemes létrehozni a saját köztes szoftverét. A köztes szoftver többféleképpen is definiálható, a legegyszerűbb pedig egy egyszerű meghatalmazott. Vegye figyelembe a következő köztes szoftvereket, amelyek egy lekérdezési sztringből fogadnak el egy kulturális kérést:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
var cultureQuery = context.Request.Query["culture"];
if (!string.IsNullOrWhiteSpace(cultureQuery))
{
var culture = new CultureInfo(cultureQuery);
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;
}
// Call the next delegate/middleware in the pipeline
await next();
});
app.Run(async (context) =>
await context.Response.WriteAsync(
$"Hello {CultureInfo.CurrentCulture.DisplayName}"));
}
}
A köztes szoftver osztályként is definiálható az interfész implementálásával vagy a IMiddleware
köztes szoftver konvenciójának követésével. További információért lásd: Egyéni ASP.NET Core middleware komponensírása.