Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Ta zawartość jest fragmentem książki eBook Blazor dla deweloperów formularzy internetowych platformy ASP NET dla platformy Azure, dostępnym na platformie .NET Docs lub jako bezpłatny plik PDF do pobrania, który można odczytać w trybie offline.
Aplikacja ASP.NET Core jest oparta na serii oprogramowania pośredniczącego. Oprogramowanie pośredniczące to programy obsługi rozmieszczone w potoku do obsługi żądań i odpowiedzi. W aplikacji Web Forms programy obsługi HTTP i moduły rozwiązują podobne problemy. W ASP.NET Core moduły, programy obsługi, Global.asax.cs i cykl życia aplikacji są zastępowane oprogramowaniem pośredniczącym. W tym rozdziale poznasz oprogramowanie pośredniczące w kontekście Blazor aplikacji.
Przegląd
Potok przetwarzania żądań w ASP.NET Core składa się z sekwencji delegatów żądań, wywoływanych jeden po drugim. Na poniższym diagramie przedstawiono tę koncepcję. Przebieg wykonywania przebiega zgodnie z czarnymi strzałkami.
Powyższy diagram nie ma pojęcia zdarzeń cyklu życia. Ta koncepcja jest podstawą obsługi żądań ASP.NET Web Forms. Ten system ułatwia wnioskowanie o tym, jaki proces występuje i umożliwia wstawianie oprogramowania pośredniczącego w dowolnym momencie. Oprogramowanie pośredniczące jest wykonywane w kolejności, w której jest dodane do potoku żądania. Są one również dodawane w kodzie zamiast plików konfiguracji, zwykle w Startup.cs.
Katana
Czytelnicy zaznajomieni z Katana czują się komfortowo w ASP.NET Core. W rzeczywistości Katana to struktura, z której pochodzi ASP.NET Core. Wprowadzono podobne wzorce dla oprogramowania pośredniczącego i procesów przetwarzania w ASP.NET 4.x. Oprogramowanie pośredniczące przeznaczone dla narzędzia Katana można dostosować do pracy z potokiem ASP.NET Core.
Typowe oprogramowanie pośredniczące
ASP.NET 4.x zawiera wiele modułów. W podobny sposób ASP.NET Core oferuje również wiele komponentów middleware. Moduły usług IIS mogą być używane w niektórych przypadkach z ASP.NET Core. W innych przypadkach może być dostępne natywne oprogramowanie middleware ASP.NET Core.
W poniższej tabeli wymieniono zastępcze oprogramowanie pośredniczące i składniki w programie ASP.NET Core.
Moduł | moduł ASP.NET 4.x | opcja ASP.NET Core |
---|---|---|
Błędy HTTP | CustomErrorModule |
Program pośredniczący stron kodów statusu HTTP |
Dokument domyślny | DefaultDocumentModule |
Domyślne oprogramowanie pośredniczące plików |
Przeglądanie katalogów | DirectoryListingModule |
Oprogramowanie pośredniczące przeglądania katalogów |
Kompresja dynamiczna | DynamicCompressionModule |
Oprogramowanie pośredniczące kompresji odpowiedzi |
Śledzenie żądań, które zakończyło się niepowodzeniem | FailedRequestsTracingModule |
ASP.NET Core Logging |
Buforowanie plików | FileCacheModule |
Oprogramowanie pośredniczące buforowania odpowiedzi |
Buforowanie HTTP | HttpCacheModule |
Oprogramowanie pośredniczące buforowania odpowiedzi |
logowanie HTTP | HttpLoggingModule |
ASP.NET Core Logging |
Przekierowanie HTTP | HttpRedirectionModule |
Ponowne zapisywanie adresów URL oprogramowania pośredniczącego |
Filtry ISAPI | IsapiFilterModule |
Oprogramowanie pośredniczące |
ISAPI | IsapiModule |
Oprogramowanie pośredniczące |
Filtrowanie żądań | RequestFilteringModule |
Oprogramowanie pośredniczące do ponownego zapisywania adresów URL IRule |
Ponowne zapisywanie adresów URL† | RewriteModule |
Ponowne zapisywanie adresów URL oprogramowania pośredniczącego |
Kompresja statyczna | StaticCompressionModule |
Oprogramowanie pośredniczące kompresji odpowiedzi |
Zawartość statyczna | StaticFileModule |
Oprogramowanie pośredniczące plików statycznych |
Autoryzacja adresu URL | UrlAuthorizationModule |
tożsamość podstawowa ASP.NET |
Ta lista nie jest wyczerpująca, ale powinna przedstawić, jakie mapowanie istnieje między dwiema strukturami. Aby uzyskać bardziej szczegółową listę, zobacz Moduły usług IIS z ASP.NET Core.
Niestandardowe oprogramowanie pośredniczące
Wbudowane oprogramowanie pośredniczące może nie obsługiwać wszystkich scenariuszy potrzebnych dla aplikacji. W takich przypadkach warto utworzyć własne oprogramowanie pośredniczące. Istnieje wiele sposobów definiowania oprogramowania pośredniczącego, przy czym najprostszym jest zwykły delegat. Rozważ następujące oprogramowanie pośredniczące, które akceptuje żądanie kultury z ciągu zapytania:
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}"));
}
}
Oprogramowanie pośredniczące można również zdefiniować jako klasę, albo implementując interfejs IMiddleware
, albo przestrzegając konwencji oprogramowania pośredniczącego. Aby uzyskać więcej informacji, zobacz Tworzenie niestandardowego oprogramowania pośredniczącego ASP.NET Core.