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:
  1. 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.

  2. 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
Son gözden geçirme tarihi : 30 Temmuz 2009 Perşembe