IIS Best Practices

For a very long time, I have been asked for a document on IIS best practices. There are some blogs/articles on the Internet but I could not find a complete one. Actually, the main problem here is that there can not be “best practices” for a web server. A web server is just a hosting…

5

System.InvalidOperationException

Uzunca bir süredir hakkında yazmak istediğim bir “exception”dı bu, ancak henüz fırsat bulabildim. Tam hata mesajımız şu şekildedir: System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Aslında hata mesajı yeterince açık…

0

OutOfMemoryException (OOM)

Daha önceki bir yazımda .NET ortamındaki uygulamaların hafıza kullanım limitlerinden bahsetmiştim. Gün geçtikçe daha çok uygulama 64bit ortamda koşmaya başlıyor, ve bu da yazılımcılara belirli bir rahatlık sağlıyor. Ancak bu rahatlık, bazen istenmeyen sonuçlara neden olabiliyor. Son birkaç ay içerisinde çok sayıda OutOfMemoryException problemi üzerinde çalıştım. Bunlardan çoğu da 64bit sunucu üzerinde 64bit ASP.NET uygulamalarıydı….

0

Web uygulamalarında performansa dair…-2-

Bir .NET uygulamasında performanstan bahsederken ilk konuşulması gereken şey, uygulamanın hafıza kullanım miktarıdır. .NET uygulamalarında – ve özellikle de ASP.NET uygulamalarında da – yanlış hafıza yönetimi ve/veya kullanımı performansı direkt olarak olumsuz etkileyecektir. .NET uygulamalarında hafıza yönetimi işini (yani nesneler için hafızada yer ayrılması ve sonra temizlenmesi) Garbage Collector (GC) mekanizması yapar. GC’nin faklı çalışma…

0

maxConnection

Daha önce “2 Sayısının Önemi” başlıklı yazımda “maxConnection” parametresinden bahsetmiştim. Ancak orada bahsettiklerim genel olarak .NET 1.1 için geçerliydi. .NET 2.0’da, duruma bağlı olarak davranış biraz daha farklı olabiliyor. Bu parametrenin detaylarından ve ne işe yaradığından önceki yazımda bahsetmiştim. Bu nedenle bunları tekrarlamayacağım. autoConfig .NET 2.0’ın machine.config dosyasını inceleyecek olursanız, maxConnection parametresinin bulunmadığını görürsünüz. Bu…

0

URLScan 3.0 ve SQL Injection saldırıları

URLScan Nedir? URLScan, IIS’in işleyeceği HTTP isteklerini kontrol edip gerektiğinde engellemeye yarayan bir güvenlik aracıdır. IIS üzerinde bir “ISAPI Filter” olarak çalışır ve filtreleme işini bizim belirlediğimiz kriterlere göre yapar. Biz bu kriterleri “urlscan.ini” isimli dosyada tanımlarız. Bu blogda URLScan’in teknik detaylarından bahsetmeyeceğim. Ancak aşağıdaki linklerde çok detaylı bilgi bulabilirsiniz: http://learn.iis.net/page.aspx/473/using-urlscan/http://learn.iis.net/page.aspx/475/urlscan-setup/ SQL Injection nedir? SQL…

3

Hafıza kullanım limitleri

Bir işletim sistemi üzerinde çalışan herhangi bir “uygulama”nın (process) kullanabileceği hafıza miktarında, tahmin edebileceğiniz gibi bir limit bulunmaktadır. Bu limit, işletim sisteminden ziyade, işlemci mimarisiyle ilgilidir. Bundan kastım, işlemcinin 32bit mi 64bit mi olduğudur. İşlemci açısından bunun ne demek olduğu ve ne ifade ettiği bizim konumuz olmadığından burada bahsetmeyeceğim. Artık 64bit işlemcilerin kullanımı oldukça artmış…

0

"Session"lar kaybolmasın!

Bize gelen problemler arasında en çok rastladığımız tanımlardan biri “session’ların kaybolması”dır: “Gün içerisinde kullanıcılar durup dururken şifre giriş sayfasına yönlendiriliyor ve yeniden kullanıcı adı/şifre girmek zorunda kalıyorlar.” “Session”ın ne olduğundan ve nasıl kullanılması gerektiğinden burada bahsetmeyeceğim. Bu yazının amacı gereği tek söylenmesi gereken şey, “session”ların bir ASP.NET uygulamasında nerede tutulabileceğidir: InProc: Bu ön tanımlı değerdir…

5

Server.MapPath ve alakasız görünen hatalar

Server.MapPath metodu, ASP zamanından bu yana çokça kullandığımız bir metottur. Aslında yaptığı tek şey, kodun çalıştığı bulunduğu yolu “string” olarak vermekten ibarettir. Ancak pek çok yerde çok kullanışlı olabilmektedir. Örneğin verilerimizi Access tablolarında tuttuğumuz senaryolarda, mdb dosyasının yerini tespit etmek için sıkça kullanılmaktadır Server.MapPath. Bir diğer çokça rastladığımız senaryo da, uygulamamızla ilgili ayarları tuttuğumuz dosyanın…

0

“2” Sayısının Önemi

Çoğumuz bir web sitesinden birden fazla dosya indirmeye çalışmışızdır. Eğer aynı anda ikiden fazla dosya indirmeye çalışırsanız, eş zamanlı olarak sadece iki tanesinin başladığını, ancak biri bittikten sonra üçüncü dosyanın inmeye başladığını görmüşsünüzdür. Bu sadece Internet Explorer’a özgü bir durum değildir. Tüm tarayıcılarda bu tür bir kısıtlama vardır: Bir web sitesine eş zamanlı olarak 2…

0