ASP.NET Timeout expired hatası (ASPNET - MSQQL Bağlantısı) Alternatif ÇÖZÜM

ASP.NET Timeout expired hatası (ASPNET - MSQQL Bağlantısı) Alternatif ÇÖZÜM
29 Mayıs 2015ASP.NET

Asp.net (windows hosting) tabanlı web sitelerinin en çok karşılaştığı sorunlardan biri de connection timeout hatasıdır. Bu hatalar sitenizde tek bir kişi yada 5-10 kişi varken çok sıkıntı çıkarmaz. Fakat siteniz yüzlerce misafir ağırlıyor-ağırlayacaksa- eğer veritabanınızın büyüklüğü ile eşdeğer olarak sisteminizde yoğunluk meydana gelecektir. Bunun sebebi veritabanının kapatılmaması ve her defasında  yeni bağlantı açmaya çalışmasıdır. Oysa işlemimiz bittikten sonra veritabanı bağlantımızı kapatmamız o veritabanına yeni bir bağlantı talebi geldiğinde rahatça işlem yapabilme yeteneği yaratır. 

Bununla ilgili olarak ilk söyleyebileceğim şey kesinlikle bağlantılarınızı açtığınız gibi kapatmanızdır.
 

SqlConnection baglanti = new SqlConnection(connectionstringiniz);
baglanti.Open();
.
.
.
baglanti.Close();

İşlemi bu şekilde kapatırsınız. Fakat olur da bu kod bloğu içerisinde bir hata alırsanız sisteminiz orada keseceği için bağlantınız kapatılmayacaktır. Bu sorunu çözebilmek için try catch bloğu kullanmak işimizi kolaylaştıracaktır.
 

try
{
SqlConnection baglanti = new SqlConnection(connectionstringiniz);
baglanti.Open();
.
.
.
baglanti.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.message);
}
finally
{
baglanti.Close();
}

Bu şekilde sistemimizin durumu her ne olursa olsun bu kod bloğuyla işimiz bittiğinde bağlantıyı kapatmış olacağız. Son olarak bu konu ile ilgili en verimli yol olan using kullanımına geleceğim.
 

using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
.
.
.
}

Bu şekilde işlemi yaptığımız zaman her koşulda bağlantı otomatik olarak kapanacaktır. Burada using kullanımı sadece ilgili blog için bağlantıyı kullan anlamına gelir ve blokta işlem bitince bağlantı kapanır. Kodda da gördüğünüz gibi kapatmak için herhangi bir kod yazmadık.

2963 Görüntülenme sayısı
  1. Yorum Icon
    5/4/2017 3:21:53 PM#1Ayşen Şekerci

    Hakikaten çok güzel anlatmışınız. Ne zamandır aradığım bir konu idi çok makbule geçti teşekkürler. :)

    Yorumu Cevapla

BİR YORUM YAZIN

Bilgileriniz Güvende!E-Posta adresiniz ve diğer bilgileriniz kimseyle paylaşılmayacaktır.