IIS Application Pool Worker Process Ayarı ve AspNet Session State Servisi

IIS Aplication Pool‘un (w3wp) kaç process halinde çalışacağını belirten ayardır. Tam Türkçesi En Fazla Çalışan İşlem Sayısı şeklindedir. Default olarak 1’e ayarlıdır.

Genelde On Demand olmayan Always Running tipi çalışan uygulamalarda 1 process’in yükü taşıması performanslı olmayabilir. Ayrıca IIS’de default olarak pool’lar 29 saatte bir recycle (restart) edildiğinden uygulama yoğun zamanlarda geç ayağa kalkabilir. (Recycle işlemi pool ayarlarında düzenlenebilmektedir.)

Bunun önüne geçmek için yükü bölmek (IIS load balancing) iyi bir çözüm olacaktır. Yük bölme işlemi için birden fazla IIS sunucu kurabilir veya tek bir IIS üzerinde pool maksimum process sayısını arttırabilirsiniz.

Yük bölme işlemi için farklı nedenleriniz olabilir. Örneğin Uygulamanız On Demand’dır fakat istemci sayısı fazla olabilir.

Yalnız burda dikkat edilmesi gereken AspNet Session State (Oturum Durumu) modudur. Her iki yük bölme senaryosunda da uygulamaların Session bilgileri her bir sunucuda veya her bir process’de kalacaktır. Buda istemci isteklerinin cevaplanması sırasında farklı session bilgilerine erişilmesi ve dolayısıyla tutarsızlığa yol açacaktır.

Ortak session bilgilerine kayıt yapmak ve erişmek için iki yöntem söz konusudur. Birincisi IIS sunucuda (Bunun için sadece bu işlemi yapacak farklı özel bir sunucu da kurulabilir) session state servisinin aktif hale getirilmesi, ikincisi ise Sql sunucuda session state için bir veritabanı açılmasıdır. Her iki yöntem de çözüm olmakla birlikte performans olarak en uygunu sunucu session state servisinin aktif edilmesidir.

Adım Adım :

Görev Yöneticisinde w3wp.exe’ye ilişkin bir veya birden fazla process görürsünüz.

IIS Yönetim Panelinde Uygulama Havuzları (Application Pools) bölümünden bir Havuz’un (Pool) Gelişmiş Ayarlarına (Advanced Settings) girilir.

Devamını Oku

Sunucunun Http portuna Gelen İstekleri Sınırlamak

Web sunucunuza ip bazlı olarak aynı anda yüzlerce istek gönderilmesi neticesinde hizmetinizin durma noktasına gelmesi sinir bozucu bir durumdur. Bu duruma Request flood yada Ddos denebilir.  Aynı şey web sunucunuz dışında posta sunucunuz veya tcp portu ile konuşan başka bir servisinizde de yaşanabilir. Siteniz veya ilgili servis linux ortamında çalışıyorsa çözümü Iptables’dir.  Diğer ortamlar için Firewall yada ortamın network seçeneklerine göz atınız.

Devamını Oku

C# ile Active Directory Kullanıcı Sorgulama

C# ile Kullanıcı sorgulama işlemleri Framework 3.5 den itibaren PrincipalContext ve UserPrincipal ile kolay bir şekilde yapılmaktadır. Eskiden DirectoryEntry, DirectorySearcher ile sorgulama yapılmaktaydı ve işlem oldukça zordu. Principal ile bu konuya kolaylık kazandırılmış olduğu görülmektedir.

Öncelikle PrincipalContext class’ından bir obje oluşturulur ve domain bilgileri girilir. Domain Bilgilerinde ContextType enum’u ile erişilen kaynağın bir domain olduğu belirtilmelidir. Domain adresi olarak örneğimizde domain.local kullandık, kullanıcı adı ve şifre (username,password) olarak standart yetkiye sahip bir kullanıcı hesabının bilgileri girilebilir. (domain_standart_user: herhangi bir standart kullanıcı, domain_standart_user_pass: yazdığınız kullanıcının şifre bilgisi)

Devamını Oku