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.
Megjegyzés:
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Figyelmeztetés
A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .
Készítette : Justin Kotalik
A HTTP/2-t a ASP.NET Core támogatja az alábbi IIS-telepítési forgatókönyvekben:
- Windows Server 2016 vagy újabb / Windows 10 vagy újabb
- IIS 10 vagy újabb
- TLS 1.2 vagy újabb kapcsolat
- Folyamaton kívüli üzemeltetés esetén: A nyilvános peremhálózati kiszolgálókapcsolatok HTTP/2-t használnak, de a kiszolgáló fordított proxykapcsolata Kestrel HTTP/1.1-et használ.
HTTP/2-kapcsolat létesítésekor folyamatban lévő üzembe helyezés esetén a HttpRequest.Protocol jelentést tesz HTTP/2. Amikor egy HTTP/2-kapcsolat létrejön folyamaton kívüli üzembe helyezés során, HttpRequest.Protocol jelentést ad HTTP/1.1.
A folyamatban lévő és a folyamaton kívüli üzemeltetési modellekről az IIS-hez készült ASP.NET Core Module (ANCM) című témakörben talál további információt.
A HTTP/2 alapértelmezés szerint engedélyezve van HTTPS/TLS-kapcsolatok esetén. A kapcsolatok http/1.1-esre esnek vissza, ha nem jön létre HTTP/2 kapcsolat. Az IIS-alapú HTTP/2 konfigurációval kapcsolatos további információkért lásd: HTTP/2 az IIS-en.
Speciális HTTP/2-funkciók a gRPC támogatásához
Az IIS további HTTP/2 funkciói támogatják a gRPC-t, beleértve a végső fejléc támogatását és a visszaállítási keretek küldését.
A gRPC IIS-en való futtatásának követelményei:
- Folyamatban lévő üzemeltetés.
- Windows 11 Build 22000 vagy újabb, Windows Server 2022 Build 20348 vagy újabb.
- TLS 1.2 vagy újabb kapcsolat.
Előzetesek
A HTTP utókiegészítések hasonlóak a HTTP-fejlécekhez, azzal a különbséggel, hogy a válasz törzsének elküldése után küldik őket. Az IIS és a HTTP.sysesetében csak a HTTP/2 válasz trailer-ek támogatottak.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
Az előző példakódban:
-
SupportsTrailersbiztosítja, hogy a előzetesek támogatottak legyenek a válasz folyamatában. -
DeclareTrailerhozzáadja a megadott trailer nevet aTrailerválaszfejléchez. A válaszhoz tartozó utólagos adatok deklarálása nem kötelező, de ajánlott. HaDeclareTrailervan meghívva, annak a válaszfejlécek elküldése előtt kell lennie. -
AppendTrailerhozzáfűzi a pótkocsit.
Visszaállítás
Az alaphelyzetbe állítás lehetővé teszi, hogy a kiszolgáló visszaállítsa a HTTP/2 kérést egy megadott hibakóddal. Az alaphelyzetbe állítás kérését megszakítottnak tekintjük.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset az előző kód példában a INTERNAL_ERROR hibakódot adja meg. A HTTP/2 hibakódokkal kapcsolatos további információkért tekintse meg a HTTP/2 specifikáció hibakódjánakszakaszát.