Giriş: ASP.NET uygulamalarında, isteklerin işlenmesi belirli bir süre içerisinde tamamlanmalıdır. Bazı durumlarda, özellikle veri yoğun işlemlerde veya karmaşık sorgularda, bu süre aşılabilmekte ve "Execution Timeout" hatası ile karşılaşılmaktadır. Bu rehber, ASP.NET'te çalışma zaman aşımı (execution timeout) süresinin nasıl değiştirileceğine dair adım adım bilgiler sunacaktır.
Execution Timeout Nedir? Execution Timeout, bir isteğin maksimum ne kadar süre çalışabileceğini belirleyen süredir. ASP.NET'te bu süre genellikle saniye cinsindendir. Süre aşımı, sunucunun kaynaklarının sonsuz döngüler veya aşırı yüklenmeye karşı korunması için önemlidir. Ancak, bazı durumlarda varsayılan süre yetersiz kalabilir ve bu durumda artırılması gerekebilir.
1. Web.config Dosyasında Değişiklik Yapmak ASP.NET uygulamanızın execution timeout süresini değiştirmenin en yaygın yolu web.config
dosyasını düzenlemektir.
httpRuntime
elementini bulun veya ekleyin.
executionTimeout
özelliğini ayarlayın. Örneğin, 3 dakikalık bir timeout için:
<system.web>
<httpRuntime executionTimeout="180"/>
system.web>
- Bu, tüm uygulama için genel bir ayar olacaktır.
2. IIS'de Değişiklik Yapmak Internet Information Services (IIS) yönetim konsolunu kullanarak da timeout ayarlarını değiştirebilirsiniz.
- IIS Yöneticisi'ni açın.
- Uygulamanızın bulunduğu siteyi seçin.
- 'ASP' ayarlarına gidin.
- 'Limits Properties' altındaki 'Script Time-out' alanını değiştirin.
3. Kod Bazında Ayarlamalar Belirli bir sayfa veya işlem için özel timeout ayarları yapmak istiyorsanız, kodunuzda bu değişiklikleri yapabilirsiniz.
Server.ScriptTimeout
özelliğini ayarlayarak ASP sayfanızın timeout süresini değiştirebilirsiniz:
Server.ScriptTimeout = 180;
4. Önemli Notlar ve En İyi Uygulamalar
- Timeout süresini artırmak, bazı durumlarda problemlere yol açabilir (örneğin, kaynak tüketimi). Bu nedenle, artırma işlemini dikkatli bir şekilde değerlendirin.
- Uygulamanızın performansını ve kaynak kullanımını izleyin. Gereksiz yere yüksek süre ayarları, sunucunuzun diğer işlemler için yeterli kaynağa sahip olmasını engelleyebilir.
- Kullanıcı deneyimini göz önünde bulundurun. Çok uzun süren işlemler, kullanıcıların uygulamanızı terk etmesine neden olabilir.
- Mümkünse, kullanıcıya geri bildirim sağlayarak işlemin devam ettiğini bildirin.
Sonuç: ASP.NET'te Execution Timeout ayarını değiştirmek, bazı durumlarda zorunlu olabilir. Ancak, bu değişikliklerin hem sunucu sağlığı hem de kullanıcı deneyimi üzerinde etkileri olabileceği unutulmamalıdır. En iyi uygulama, gerektiğinde ve dikkatli bir şekilde bu ayarları optimize etmektir. Ayrıca, uygulamanızın performansını düzenli olarak izleyerek ve gerektiğinde kod optimizasyonları yaparak, timeout sürelerine olan ihtiyacı azaltabilirsiniz.