Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İpucu
Bu içerik, Blazor .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için ASP NET Web Forms Geliştiricileri için e-Kitap'tan bir alıntıdır.
bir ASP.NET Core uygulaması, bir dizi ara yazılım üzerine kurulmuştur. Ara yazılım, istekleri ve yanıtları işlemek için bir işlem hattı halinde düzenlenmiş işleyicilerdir. Web Forms uygulamasında HTTP işleyicileri ve modülleri benzer sorunları çözer. ASP.NET Core'da modüller, işleyiciler, Global.asax.cs ve uygulama yaşam döngüsü ara yazılımla değiştirilir. Bu bölümde, bir Blazor uygulama bağlamında ara yazılım hakkında bilgi edineceksiniz.
Genel bakış
ASP.NET Core istek işlem hattı birbiri ardına çağrılan bir dizi istek temsilcisinden oluşur. Aşağıdaki diyagramda bu kavram gösterilir. Yürütme iş parçacığı siyah okları izler.
Yukarıdaki diyagramda yaşam döngüsü olayları kavramı yok. Bu kavram, ASP.NET Web Forms isteklerinin nasıl işleneceğinin temelini oluşturur. Bu sistem, hangi işlemin gerçekleştiğini anlamanızı kolaylaştırır ve ara yazılımların herhangi bir noktada eklenmesini sağlar. Ara yazılım, istek işlem hattına eklendiği sırayla yürütülür. Bunlar genellikle Startup.cs yapılandırma dosyaları yerine koda da eklenir.
Katana
Katana'yı bilen okuyucular ASP.NET Core'da kendilerini rahat hissedecekler. Aslında Katana, ASP.NET Core'un türetildiği bir çerçevedir. ASP.NET 4.x için benzer ara yazılım ve işlem hattı desenleri kullanıma sunulmuştur. Katana için tasarlanan ara yazılım, ASP.NET Core işlem hattıyla çalışacak şekilde uyarlanabilir.
Ortak ara yazılım
ASP.NET 4.x birçok modül içerir. Benzer şekilde, ASP.NET Core da birçok ara yazılım bileşenine sahiptir. IIS modülleri bazı durumlarda ASP.NET Core ile kullanılabilir. Diğer durumlarda yerel ASP.NET Core ara yazılımı kullanılabilir.
Aşağıdaki tabloda, ASP.NET Core'daki yeni ara yazılım ve bileşenler listelenmiştir.
Modül | ASP.NET 4.x modülü | ASP.NET Core seçeneği |
---|---|---|
HTTP hataları | CustomErrorModule |
Durum Kodu Sayfaları Ara Yazılımı |
Varsayılan belge | DefaultDocumentModule |
Varsayılan Dosyalar Ara Yazılımı |
Dizin tarama | DirectoryListingModule |
Dizine Gözatma Ara Yazılımı |
Dinamik sıkıştırma | DynamicCompressionModule |
Yanıt Sıkıştırma Ara Yazılımı |
Başarısız istek izleme | FailedRequestsTracingModule |
ASP.NET Çekirdek Günlüğü |
Dosya önbelleğe alma | FileCacheModule |
Yanıtları Önbelleğe Alma Ara Yazılımı |
HTTP önbelleğe alma | HttpCacheModule |
Yanıtları Önbelleğe Alma Ara Yazılımı |
HTTP günlüğü | HttpLoggingModule |
ASP.NET Çekirdek Günlüğü |
HTTP yeniden yönlendirme | HttpRedirectionModule |
URL Yeniden Yazma Ara Yazılımı |
ISAPI filtreleri | IsapiFilterModule |
Ara Yazılım |
ISAPI | IsapiModule |
Ara Yazılım |
İstek filtreleme | RequestFilteringModule |
URL Yeniden Yazma Ara Yazılım IRule |
URL yeniden yazma† | RewriteModule |
URL Yeniden Yazma Ara Yazılımı |
Statik sıkıştırma | StaticCompressionModule |
Yanıt Sıkıştırma Ara Yazılımı |
Statik içerik | StaticFileModule |
Statik Dosya Ara Yazılımı |
URL yetkilendirmesi | UrlAuthorizationModule |
ASP.NET Çekirdek Kimliği |
Bu liste kapsamlı değildir, ancak iki çerçeve arasında hangi eşlemenin var olduğu hakkında bir fikir vermelidir. Daha ayrıntılı bir liste için bkz . ASP.NET Core ile IIS modülleri.
Özel ara yazılım
Yerleşik ara yazılım, bir uygulama için gereken tüm senaryoları işlemeyebilir. Böyle durumlarda kendi ara yazılımınızı oluşturmak mantıklıdır. Ara yazılımı tanımlamanın birden çok yolu vardır ve en basiti basit bir temsilcidir. Sorgu dizesinden bir kültür isteği kabul eden aşağıdaki ara yazılımı göz önünde bulundurun:
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}"));
}
}
Ara yazılım, arabirimi uygulanarak veya ara yazılım kuralına IMiddleware
uyularak sınıf olarak da tanımlanabilir. Daha fazla bilgi için bkz . Özel ASP.NET Core ara yazılımı yazma.