Session timeout sorunu ve çözümleri

Uğur ÇELENK tarafından yayınlanmıştır 21. Nisan 2008 21:23
Session, belli bir kullanıcıya ait bilgilerin sayfalar arasında korunması veya taşınabilmesi için kullanılmaktadır.
Genellikle, sitede login olma bölümünde kullandığımız session'ların bir timeout(zaman aşımı) değeri vardır, bu ayar default(varsayılan) değer olarak 20 dakikadır. Eğer siz bu 20 dakika olan süreyi değiştirmek isterseniz yapmanız gereken aşağıdaki kodu web.config dosyasınıza yerleştirmeniz olacaktır.

<system.web>
    <authentication mode="Forms">
          <forms timeout="30000"/>
    </authentication>
</system.web>


Diğer bir çözüm ise, session kullandığınız sayfalara ya da bu sayfaların türediği masterpage'n Page_load anına, aşağıdaki kodu eklerseniz sorun yaşamazsınız
Bu kod ne iş yapar? Kullanıcı sayfa üzerinde uzun bir bekleme yaptığında session timeout olmasın diye, metataglara sayfanın yenilenmesini sağlayan bir kod ekliyor, rakamlarla oynayarak optimize edebilirsiniz.

Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 20));

Sunucuya reset atılması durumunda ya da yaptığınız kod değişikliklerini sunucuya gönderirken session sonlanacaktır. Bu durum benim için çok olumsuz bir durum oluşturur diye düşünüyosanız, yapmanız gereken şey, session bilgilerini veritabanı üzerinde tutmanız olacaktır.(Session bilgilerinin nasıl veritabanında tutulacağını öğrenmek için, buraya tıklayabilirsiniz)

Not: Session sürelerini olabildiğince kısa tutmaya özen göstermemiz gerekir, session bilgileri server tarafında memory de saklandığı için bu kısıtlı kaynağın tüketimini optimize etmemiz önemlidir.

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading



Altyapı olarak BlogEngine.NET 1.4.5.0 kullanılmış olup Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır ve tasarımı bana aittir. || Oturumu aç

 Friendfeed AkışımTakip Et

 Son Yorumlar

Yorumlar RSS

 Etiket Bulutu