2010-09-10 26 views
12

İlk sayfanın yavaş yüklenmesinden muzdarip bir ASP.NET 2.0 uygulamasında hata ayıklanıyor.Birden çok Application_Start olayı tetikleniyor

Günlüğe kaydetme ekleyerek, Application_Start etkinliğinin iki olay arasında iki olay arasında kısa bir gecikme ile iki kez tetiklendiğini fark ettim. Session_Start olayı da aynı Oturum Kimliği değeriyle iki kez ateşlenir.

örn.

 
[Header] 
2010-09-10 14:52:36.331 INFO Web.Global.Application_Start   START 
2010-09-10 14:52:37.409 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 
[Header] 
2010-09-10 14:53:10.028 INFO Web.Global.Application_Start   START 
2010-09-10 14:53:10.325 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 

Bunu yerel makinemde IIS 5.1'de çalıştırıyorum. Proje ayrıca ASP.NET MVC kullanır ve kullanılan aspx sayfa URL'si, using the technique shown on Phil Haack's site yönlendirmesi kullanılarak değiştirilir.

Buna neden olabilecekler hakkında herhangi bir öneriniz var mı?

+2

Web.config dosyasını değiştirerek uygulama şans eseri mi? – muratgu

+0

Aralarında Application_End var mı? Kodunuzda "HttpRuntime.UnloadAppDomain" araması var mı? – Alex

+1

Benim durumumda Mc Afee Virus taramasıydı. Klasörleri hariç tutmak için bu kılavuzu takip ettim https://support.microsoft.com/en-us/kb/3126034 – gavin

cevap

11

Sonuç olarak bunun, IIS yapılandırmamıza uygun olduğunu anladık.

Bir süre önce bu web sitesi için kullanılan sanal dizinin yeniden adlandırılmasına karar verildi. Bu, yeni bir sanal dizin yapılandırması ekleyerek, bir öncekini yerinde bırakarak yapıldı. Esasen aynı ASP.NET uygulamasına işaret eden iki sanal dizin vardı!

Yeni sanal dizine geçiş hiçbir zaman tamamlanmadı, bu nedenle web sitesinin bazı bölümleri hala eski olanı başvuruyor. Dolayısıyla iki Application_Start olaylar ...

düzeltme /NewVirtualDirectory $ S $ Q

3
olarak ayarlanmış URL ile bir URL'ye A yönlendirme olmak IIS eski sanal dizine kurulum için değiştirmek oldu

Benzer bir durum, yalnızca bir montaj yeniden adlandırması yaptığımız ve bu derlemenin varlığına referans veren aynı kodun iki kopyasının, versionA.dll ve versionB.dll olduğundan dolayı olduğunu keşfetmemiz için gerçekleşti. Yani bunun için iki kez çağrılıyordu! Gelen

0

benim deneyimli x64 klasöründe SQLite.Interop.dll silinmemiş

geliyor (saat araştırma ve kodlama ton sonra)

ben paneli barındıran yerine Dosya Yönetimi tarafından silindi FTP (FileZilla) ve Çoklu Application_Start olayları gitti :-) Kök nedenleri durdurulamadı bu dll bağlı Quartz.Net işlemi durdurulamadı.

İlgili konular