BILGI: Uygulama örnekleri uygulama olayları ve ASP.NET, uygulama durumu

Makale çevirileri Makale çevirileri
Makale numarası: 312607 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

ASP.NET HttpApplication nesnesi programlama modeli basitleştirmek için çok karmaşık kavramları gizler. Bu makalede, bu karmaşıklık bazıları açıklanmaktadır. Buna ek olarak, bu makalede, ASP.NET, Klasik Microsoft Active Server Pages (ASP) Uygulama nesnesine uyumluluk sorunları nasıl işlendiğini açıklar.

Bu makalede, aşağıdaki bölümlere ayrılmıştır:

Daha fazla bilgi

Uygulama sınıfı ve uygulama örnekleri

Bir uygulama sınıfı Global.asax dosyasında tanımlanır. Global.asax kod System.Web.HttpApplication ' türetilmiş yeni bir sınıf tanımlar. Bir Global.asax dosyasına devamsızlığı temel sınıf (HttpApplication, uygulama sınıfı kullanılır.

ASP.NET çalışma zamanı uygulama sınıfları istekleri aynı anda işlemek için gereken sayıda örneklerini oluşturur. Bu numara, uygulamaların çoğu için iş parçacığı sayısı sınırlıdır ve aralık 1 ile 100, donanım, sunucu iş yükü, yapılandırması ve benzerleri bağlı kalır. Birçok uygulama örnekleri yeniden ve uygulama örneği boş bir liste, daha az yük dönemlerde tutulur. Uygulama örnekleri, bir iş parçacığı için güvenli şekilde, diğer bir deyişle, bir defada bir istek kullanılır. Bu, önemli bir olası etkilere sahiptir:
  • Statik olmayan üyeleri <a0>Uygulama</a0> sınıfının eriştiğinizde kilitleme hakkında endişelenmeniz gerekmez.
  • Uygulama kodu <a0>Uygulama</a0> sınıfının statik olmayan üyelerinde her istek için istek verileri saklayabilir (ancak değil EndRequest olayından sonra olduğundan, bu olay, uzun bir süredir isteği korumak).
Iş parçacığı için güvenli bir uygulama sınıfı dahil olmak üzere herhangi bir sınıf statik üyesi olmadığından, kullanıcı kodu statik üyelere erişim için uygun kilitleme sağlamanız gerekir. Bu uygulama sınıfına eklediğiniz herhangi bir statik üyesi için geçerlidir.

Geçerli istekle ilişkili uygulama örneği erişmek için aşağıdaki yönergeleri kullanın:
  • Global.asax, Bu ve Bana nesne kullanın.
  • Bir sayfa, her sayfanın bir özellikle yazılan ApplicationInstance özelliği içerir.
  • HttpContext nesneden HttpContext.ApplicationInstance özelliği (HttpApplication yazdığınız) kullanın.
Not Genel uygulama durumu sözlüğünde klasik ASP Uygulama başvurduğu için ASP.NET ApplicationInstance ve uygulamayı bir özellik adı geçerli isteğini işler bir uygulama örneğine başvurmak için kullanır.

Uygulama olayları

Isteğin süresi, bir dizi uygulama olayları (ve ASP.NET uygulayan örtülü bazı adımlar) oluşur. Bu olaylar, bunlar yürütüldüğü sırada aşağıda listelenmiştir:
  1. BeginRequest
  2. AuthenticateRequest olayı
  3. Iç olay DefaultAuthentication
  4. AuthorizeRequest olayı
  5. ResolveRequestCache olayı
  6. Iç adım "eşlemesi işleyicisine" (derleme gerçekleştiğinde, bir sayfa örneği oluşturulur)
  7. AcquireRequestState olayı
  8. PreRequestHandlerExecute olayı
  9. Iç adım, "işleyicisi çalıştırmak için <a0></a0>" (ne zaman sayfa kod yürütülür)
  10. PostRequestHandlerExecute olayı
  11. ReleaseRequestState olayı
  12. Süzgeç yanıtları UpdateRequestCache olay iç adım
  13. UpdateRequestCache olayı
  14. EndRequest olayı
NotServer.Transfer veya Response.Redirect(string) kullanırsanız, geçerli isteğin etkin bir şekilde kesildi ve yukarıda listelenen olaylar bazıları değil yükseltilecektir. Ancak, bu senaryoda EndRequest olay yükseltilecektir.

Aşağıdaki öğeler bu olayları ele alabilir:
  • Iç ASP.NET sayfa çerçevesi (örneğin, 6, 9 ve yukarıdaki listede 12 adımlar).
  • Uygulama için yapılandırılan HTTP modülleri. Machine.config dosyasında tanımlanan HTTP modüllerini varsayılan listesini.
  • [Açık] EventName Application_ yöntemle sayfaya veya bir alternatif işleyicinin adı için olay işleyicileri eklediğinizde, açıkça sayfaya Global.asax içinde kod'i tıklatın.
Her olay aboneleri, zaman uyumlu ve zaman uyumsuz olabilir. Zaman uyumsuz aboneleri önce yürütülür. Tüm olayları her zaman çalıştırılır; her zaman yürütülecek olan yalnızca EndRequest etkinliğidir. Sonuç olarak, tüm after-request temizleme EndRequest olay gerçekleştirin.

Not Çoğu durumda, uygulama örneği yanıt (EndRequest sonra) tamamlandıktan sonra asıl yanıtı istemciye gönderilir.

Application_OnStart ve Application_OnEnd

ASP.NET, klasik ASP ile uyumluluk için benzersiz Application_OnStart ve Application_OnEnd "olayları" tanıtır. Bu "olay" yaşam süresi, bir uygulamanın ve her uygulama örneği için yalnızca bir kez yürütülür. Bu yöntemler statik olmayan üyelerinde değiştirirseniz, bu nedenle, tek bir uygulama ve tüm örneklerini etkiler. Kurucu veya ınit yöntemi geçersiz kılma olarak bir uygulama örneği başlatılamıyor.

Application_OnStart uygulama sınıfı için sınıf oluşturucu için mantıksal bir eşdeğeri olan, ancak bu bir avantaj sunar: kod HttpContext uygulama için ilk istek için erişebilir.

Uygulama durumu

Uygulama, bir Microsoft Visual Basic Scripting Edition (VBScript), genel değişkenler, devamsızlık için dengelemek için klasik ASP tanıtır sonradan bağlanan nesneler, genel sözlüğü durumudur. ASP.NET'te, uygulama durumu aşağıdakilerden biri erişebilirsiniz:
  • Uygulama özelliği (HttpApplication hem sayfa sınıflarda tanımlanır)
  • HttpContext.Application
Böylece, varolan ASP.NET uygulamalarını geçiş daha kolaydır, ASP.NET uygulama durumu ile klasik ASP uygulamalarıyla uyumluluk açısından içerir. Uygulama nesnesini uygulama sınıfı yerine statik üyesi, verileri depolamak önerilir. Bir statik değişken erişebildiğinizi uygulama içindeki bir öğeyi daha hızlı erişmek için bu performansı artırır sözlük.

Microsoft Visual C# .NET ve Microsoft Visual Basic. NET'te sayfalardan statik uygulama üyelere erişim için <a0></a0>, uygulama sınıfınızın adını için Global.asax içinde SınıfAdı özniteliği kullanmalısınız. Için örnek:
<%@ Application Language="C# | VB" ClassName="MyClass" %>
				
MyStaticMember Global.asax dosyanızdaki adlı bir statik üyesi, sayfanızdan erişmeye MyClass.MyStaticMember kullanabilirsiniz.

Özellikler

Makale numarası: 312607 - Last Review: 21 Ocak 2004 Çarşamba - Gözden geçirme: 5.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Anahtar Kelimeler: 
kbmt kbappdev kbhttpruntime kbinfo kbstate KB312607 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:312607

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com