Asp.net'te global.asax'ın amacı nedir


101

Asp.net'te global.asax'ı nasıl kullanabiliriz? Ve bu nedir?

Yanıtlar:


119

MSDN, global.asax dosyasının amacının ana hatlarına sahiptir .

Etkili bir şekilde, global.asax, uygulama başlatma, oturum bitirme, oluşan bir uygulama hatası gibi "sistem düzeyinde" olaylara yanıt olarak çalışan kodu yazmanıza olanak tanır, bu kodu her birine tek tek denemeye gerek kalmadan sitenizin sayfası.

Visual Studio'da Ekle> Yeni Öğe> Global Uygulama Sınıfı'nı seçerek kullanabilirsiniz. Dosyayı ekledikten sonra, listelenen (ve varsayılan olarak, en azından Visual Studio 2008'de oluşturulan) olaylardan herhangi birinin altına kod ekleyebilirsiniz:

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Uygulama hatası

"LogRequest" gibi bağlanabileceğiniz başka olaylar da vardır.


2
Global.asax girişi Wikipedia'dan silindi.
Cathy Sullivan

Windows formu için global.asax dosyası ekleyebilir miyiz?
Jeeva Jsb

@JeevaJsb, hayır. Global.asax içeriği, (genellikle) IIS / ASP.net uygulama yaşam döngüsü tarafından tetiklenen olaylardır, böylece bir WinForms uygulamasında kodu tetikleyecek hiçbir şey olmaz.
Rob

Neden sadece HttpApplication sınıfından miras alan ve asax dosyası gerektirmeyen bir koda sahip olamayacaklarını merak ediyorum. Global.asax.cs tüm bilgileri içerir, bu nedenle yalnızca bu <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
Basit Fellow

68

Global asax olayları açıklandı

Application_Init: Bir uygulama başlatıldığında veya ilk çağrıldığında tetiklenir. Tüm HttpApplication nesne örnekleri için çağrılır.

Application_Disposed: Bir uygulama yok edilmeden hemen önce tetiklenir. Bu, önceden kullanılmış kaynakları temizlemek için ideal yerdir.

Application_Error: Uygulama içinde işlenmeyen bir istisna ile karşılaşıldığında tetiklenir.

Application_Start: HttpApplication sınıfının ilk örneği oluşturulduğunda tetiklenir. Tüm HttpApplication örnekleri tarafından erişilebilen nesneler oluşturmanıza olanak tanır.

Application_End: Bir HttpApplication sınıfının son örneği yok edildiğinde tetiklenir. Bir uygulamanın ömrü boyunca yalnızca bir kez ateşlenir.

Application_BeginRequest: Bir uygulama isteği alındığında tetiklenir. Bu, genellikle bir kullanıcının girdiği bir sayfa isteği (URL) olan bir istek için tetiklenen ilk olaydır.

Application_EndRequest: Bir uygulama isteği için tetiklenen son olay.

Application_PreRequestHandlerExecute: ASP.NET sayfa çerçevesi bir sayfa veya Web hizmeti gibi bir olay işleyicisini yürütmeye başlamadan önce tetiklenir.

Application_PostRequestHandlerExecute: ASP.NET sayfa çerçevesi bir olay işleyicisini yürütmeyi bitirdiğinde tetiklenir.

Applcation_PreSendRequestHeaders: ASP.NET sayfa çerçevesi istekte bulunan bir istemciye (tarayıcı) HTTP üstbilgileri göndermeden önce tetiklenir .

Application_PreSendContent: ASP.NET sayfa çerçevesi, isteyen bir istemciye (tarayıcı) içerik göndermeden önce tetiklenir.

Application_AcquireRequestState: ASP.NET sayfa çerçevesi, geçerli istekle ilgili geçerli durumu (Oturum durumu) aldığında tetiklenir.

Application_ReleaseRequestState: ASP.NET sayfa çerçevesi tüm olay işleyicilerinin yürütülmesini tamamladığında tetiklenir. Bu, tüm durum modüllerinin mevcut durum verilerini kaydetmesine neden olur.

Application_ResolveRequestCache: ASP.NET sayfa çerçevesi bir yetkilendirme isteğini tamamladığında tetiklenir. Önbelleğe alma modüllerinin isteğe önbellekten hizmet etmesini sağlar, böylece işleyici yürütmesini atlar.

Application_UpdateRequestCache: ASP.NET sayfa çerçevesi, önbelleğe alma modüllerinin sonraki istekleri işlemek için kullanılacak yanıtları depolamasına izin vermek için işleyici yürütmesini tamamladığında tetiklenir.

Application_AuthenticateRequest: Güvenlik modülü mevcut kullanıcının kimliğini geçerli olarak belirlediğinde tetiklenir. Bu noktada, kullanıcının kimlik bilgileri doğrulandı.

Application_AuthorizeRequest: Güvenlik modülü, bir kullanıcının kaynaklara erişebildiğini doğruladığında tetiklenir.

Session_Start: Yeni bir kullanıcı uygulama Web sitesini ziyaret ettiğinde tetiklenir .

Session_End: Bir kullanıcının oturumu zaman aşımına uğradığında, sona erdiğinde veya uygulama Web sitesinden çıktığında tetiklenir .



6

Global.asax , asp.net uygulama dosyasıdır.

ASP.NET veya HttpModules tarafından oluşturulan olayları işleyen isteğe bağlı bir dosyadır. Çoğunlukla uygulama ve oturum başlatma / bitiş olayları ve genel hata işleme için kullanılır.

Kullanıldığında, web sitesinin kök dizininde yer almalıdır.


4

Bir web uygulamasının kök dizininin özel bir önemi vardır ve bu klasörde belirli içerikler bulunabilir. "Global.asax" adında özel bir dosyası olabilir. ASP.Net çerçevesi, global.asax içindeki içeriği kullanır ve çalışma zamanında HttpApplication'dan miras alınan bir sınıf oluşturur. Bir uygulamanın ömrü boyunca ASP.NET, Global.asax'tan türetilmiş HttpApplication örneklerinden oluşan bir havuz tutar. Bir uygulama bir http isteği aldığında, ASP.Net sayfa çerçevesi bu isteği işlemek için bu örneklerden birini atar. Bu örnek, atandığı isteğin tüm yaşam süresinin yönetilmesinden sorumludur ve örnek yalnızca istek havuza döndürüldüğünde tamamlandıktan sonra yeniden kullanılabilir. Global.asax içindeki örnek üyeleri, istekler arasında veri paylaşmak için kullanılamaz, ancak statik üye olabilir. Global.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.