Yüksek performanslı ASP.NET uygulamaları için yapılması gerekenler
ASP.NET uygulamaları geliştirilirken, yüksek performans ve kararlı çalışan sistemler için dikkat edilmesi gereken bazı ayarlar vardır.
Bu ayarlar yapılmadığında, yaşanan problemler ve alınan semptomlar çok çeşitli olabilir ve sorunun asıl sebebine ilişkin bilgileri içermeyebilir. Örneğin, aşağıdaki ayarların dikkate alınmaması, uygulamanız içinde zaman zaman SQL Server’a bağlanamama, sayfaların bazen gelip bazen gelmemesi, oturum (session) bilgilerinin kaybolması veya ASP.NET uygulamanızın sürekli artan hafıza kullanımı gibi sorunlarla karşılaşmanıza sebep olabilir.
Bu ayarların eksikliği, sisteminiz yayındayken, belli bir süre sonra sisteminizdeki yük artınca, uygulamanızın tamamen çökmesine ya da yukarıdaki sorunlarla karşılaşmanıza neden olabilir.
Bu makalede, kısaca bu ayarlardan en çok gözden kaçırılanlardan bahsedilecektir:
Uygulamanızı "Debug" modundan çıkarın
web.config dosyasında "compilation" elemanının "debug" özelliğinin "false" olması gerekir. Aksi takdirde, performans sorunları ile karşılaşabilirsiniz.
<compilation defaultLanguage="c#" debug="false"/>
Bu konu ile ilgili, aşağıdaki makaleleri inceleyebilirsiniz:
Developing High-Performance ASP.NET Applications
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondevelopinghigh-performanceaspnetapplications.asp
Quick things to check when you experience high memory levels in ASP.NET
http://support.microsoft.com/kb/893660/
Chapter 13 — Code Review: .NET Application Performance
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt13.asp
Bazı uygulamaların, yukarıdakinden başka, bu amaçla kullanılan kendilerine özel ayarları olduğunu da göz önünde bulundurmakta fayda olacaktır.
ASP.NET dosyalarınızın, antivirüs yazılımları tarafından taranmasını engelleyin
ASP.NET web uygulaması klasörleri ile ASP.NET temporary klasörlerinin antivirus programlarında, taranmayan dosyalar / klasörler olarak ayarlanmış olması gerekmektedir. Aksi takdirde, uygulamalarınızda sık sık session bilgilerinin kaybolması ile karşılaşabilirsiniz. Ayrıca, olay günlüğünde (event log), web uygulamanızın yeniden başlatıldığına yönelik uyarılar görebilirsiniz.
ASP.NET temporary klasörü, sistem diskinizin windows klasöründe, Microsoft.NET altındaki Framework klasörünün içinde, ilgili .NET framework versiyonunun altındadır:%windir%\Microsoft.NET\Framework\v1.X.XXXX\Temporary ASP.NET Files
Örneğin:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
Bu konuda da aşağıdaki makaleleri referans olarak alabilirsiniz:
PRB: Random application restarts with "Application is restarting" error in ASP.NET
http://support.microsoft.com/kb/312592/
PRB: Session variables are lost intermittently in ASP.NET applications
http://support.microsoft.com/kb/316148/
FIX: Antivirus Programs May Cause Some Web Applications to Restart
http://support.microsoft.com/kb/821438/
FIX: Some Antivirus Programs May Cause Web Applications to Restart
http://support.microsoft.com/kb/820746/
PRB: Exceptions Occur When You Run ASP.NET Applications and Inoculan Antivirus Software
http://support.microsoft.com/kb/309337/
PRB: Session State Is Lost in Mobile Web Form Applications During Development
http://support.microsoft.com/kb/310619/
PRB: "Access Denied" Error Messages When You Do Not Put Strong-Named Assemblies in the Global Assembly Cache
http://support.microsoft.com/kb/813833/
Yukarıda önerilenler, ASP.NET teknolojisini kullanan diğer ürünler için de geçerlidir. Örneğin, aşağıdaki ürünleri kullananlar da uygulamalarının debug modda çalışmadığına ve ASP.NET dosyalarının antivirüs yazılımları tarafından taranmadığına dikkat etmelidir:
- Reporting Services
- Share Point Portal Server
- Microsoft Solution for Internet Business (MSIB)
- Commerce Server
- Content Management Server
- CRM Server