IIS

IIS İpucu: Web uygulamanızın kendiliğinden başlatılması ve devamlı çalışır halde tutulması

IIS’te çalıştırmak üzere geliştirilen .Net Core/.Net Framework uygulamaları varsayılan olarak çeşitli çalıştırma ve başlangıç ayarlarına sahiptirler.

Bir arka plan servisi veya önyükleme zamanı uzun olan bir web uygulamasının sürekli çalışır halde tutulması veya restart edilen IIS, app-pool, server sonucunda kendiliğinden başlatılması için gerekli konfigürasyonu anlatılacaktır.

Application Pool/Start Mode: On Demand ve Always Running şeklinde iki seçenekten oluşmaktadır. Uygulamanın talep durumunda mı? (On Demand) veya herzaman mı? (Always Running) çalışacağına karar verilen seçenektir. Uygulamanın devamlı çalışması için Always Running seçeneğini işaretlenmelidir.

Ayar lokasyonu: Application Pools/Uygulama Pool’unuz/Advanced Settings

iis pool always running

Application Pool / Idle Timeout: IIS’te bir uygulama çalışırken varsayılan olarak 20 dakika süresince HTTP isteği alınmaz ise uygulama kapatılır. Burada Idle Timeout değeri olarak “0” (Sıfır) vererek bu ayarı devre dışı bırakabilirsiniz. Bir diğer seçenek ise bir alt kısımda bulunan Idle Timeout Action ayarıdır. Idle Timeout Action kısmında Terminate varsayılan seçimdir. Terminate yerine Suspend seçilebilir. Suspend ayarı, idle timeout süresince uygulamaya istek gelmemesi durumunda uygulamayı kapatmak yerine uygulama process’inin disk üzerine alınmasını sağlar. Bu durumda uygulama arka planda çalışacaktır ve istek geldiğinde tekrar hafızaya yüklenecektir. Ancak performans dezavantajı oluşturabilir. Idle Timeout “0” seçilir.

Ayar lokasyonu: Application Pools/Uygulama Pool’unuz/Advanced Settings

idle timeout

IIS Site Setting / Preload Enabled: Uygulamanın kendiliğinden başlatılmasını sağlayan ayardır. IIS Sites klasöründe siteyi seçili hale getirip Advanced setting ile ilgili ayara erişilmektedir. Varsayılan olarak “False” ayarlıdır. Bu ayarı “True” yaptığınızda devreye girecektir. Ancak bu düzenlemenin yani kendiliğinden başlamanın aktif olabilmesi için bir IIS Role yüklenmesi gereklidir. IIS Role konusunda bir sonraki adımda bilgi verilecektir.

Ayar lokasyonu: Sites/Siteniz/Advanced Settings

iis site preload

IIS Role / Application Initialization: IIS Site ayarlarında bulunan Preload Enabled (Önyükleme Etkin) ayarının aktif olabilmesi için gerekli IIS Role’dür. Uygulama çalıştırıldıktan sonra Idle Timeout olmasa, Restart edilmese ve Always Running modunda çalışsa bile, Application Pool Recycle varsayılan olarak 1740 dakika sonra pool’u recycle (restart) edecektir. Pool restart edildiğinde uygulama HTTP talep gelene kadar başlamayacak ve başladıktan sonra ise bir sonraki recycle işlemine kadar çalışacaktır. Bu yüzden uygulamanın yeniden başlatılması durumunda çalışması gereklidir. Bu durum bazense başlatılması uzun süren çok modüllü ve yüksek hafıza ihtiyacı duyan uygulamaların kendiliğinden başlatılması için kullanılmaktadır.

Uygulamanın önyükleme (kendiliğinden başlatma) işlevi için Application Initialization rolü eklenir. Bunun için Sunucu yönetiminde IIS seçilerek Add Roles and Features penceresi açılır. Ekran alıntısında görüleceği üzere Web Server/Application Development/Application Initialization sekmesinden seçilerek yüklenir.

iis site preload initialization

Anlatılan düzenlemelerde İngilizce Windows kullanıldığından Türkçe kullanımda teknik terimler anlaşılacağı için çevrim yapılmamıştır.

Sağlıkla kalın..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*