2009-02-21 26 views
6

"www" URL'leri (http://example.com/) olmadan "www" URL'leri (http://www.example.com/) ile yeniden yönlendiren bir modül kullandığım bir web uygulaması yaptım. Ama ben bir HttpModule uygulamak için iznim yok paylaşılan barındırma sunucusunda olduğum gibi, ben aynı modül kodunu Global.asax dosyası ile denedim. Bu işe yarıyor!HttpModule ve Global.aspx arasındaki performans farkı nedir?

HttpModule işlevlerimi uygulamak için aşağıdaki (Application_BeginRequest()) olayını kullandım.

void Application_BeginRequest() 
{ 
    //module code 
} 

modül ve uygulama

Global.asax dosyasından iyi ve doğru çalıştığından Ama performansı hakkında endişeliyim.

Neden HTTPModules'i asp.net'de kullanıyoruz? Global.asax dosyasını kullanarak da aynısını uygulayabiliriz. Her ikisinde de performans farklılıkları var mı? Ya da HttpModule yerine Global.asax dosyasını kullanırken endişelenmeniz gereken herhangi bir fark ??

Lütfen açıklayınız!

cevap

4

Global.asax, HTTPApplication öğesinden devralınır ve HTTPModules, IHTTPInterface uygulamasını uygulamalıdır.
HTTPModules Init yöntemi, HTTPApplication nesnesinin içeri aktarılmasını sağlar.
Init yönteminde HTTPApplication olaylarına bağlanabilirsiniz.

Yapabildiğiniz her yerde HTTPModules kullanmanız önerilir.
Özellikle, müşterinizin global.asax ürününü kendi başlarına değiştirebileceği küçültülmüş yazılımlar yaparsanız.

+0

Ben de Global.asax üzerinden HTTPModules tercih ederim ama HttpModule uygulamak çalıştığımda paylaşılan barındırma sunucusunda o zaman bana "500 Insternal Sunucu Hatası" verir. İşte bu yüzden Global.asax – Prashant

+0

ile gidiyorum Bir şey daha "Ben özellikle müşterinin global.asax'ınızı kendi başlarına değiştirebileceği küçültülmüş yazılımlar yapıyorsanız." Cevapların bu satırı? "Shrink-sarılmış yazılım" nedir ve müşteri global.asax dosyasını nasıl değiştirebilir? – Prashant

+0

Çalışma zamanında, Global.asax ayrıştırılır ve HttpApplication taban sınıfından türetilen dinamik olarak oluşturulmuş bir .NET Framework sınıfına derlenir. Bir yazılım paketi (shrink-sarılmış) satıyorsanız, müşteri global.asax'ı değiştirebilir –

2

Hiç bir fark yok. HTTPModules noktası netlik ve ayrılık içindir. Çoğu zaman, insanlar, global.asax ile alamadığınız bir şey olan birkaç HTTPModules yoluyla isteği boruya gönderir.

+1

Tamam, her iki yöntemin de performans açısından bir farkı yoktur. Caz benim için önemli :) – Prashant

İlgili konular