.Net Core Uygulamasının IIS de Otomatik Başlatılması ve Sürekli Çalışır Tutulması
IIS’te çalıştırmak üzere geliştirilen .Net Core/.Net Framework uygulamaları çeşitli başlangıç ayarlarına sahiptir.
Bu gönderide .Net Core uygulamasının otomatik olarak başlamasını ve her zaman IIS üzerinde çalışmasını sağlamak için yapılabilecek ayarlardan bahsetmeye çalışacağım. Bu ayarlar en çok karşılaştığımız aşağıdaki iki soruna çözüm sunmaktadır.
- IIS de yayınladığımız projelerde siteye ilk girişteki bekleme (Önyükleme) süresinin uzun olması
- Arka planda çalışan servisin belirli bir süre sonra durması ve sürekli çalışmaması
1) Windows Server İçin “Application Initialization” Aktif Etmek
IIS Site ayarlarında bulunan Preload Enabled (Önyükleme Etkin) işlevinin çalışması için gerekli roldür.
Uygulamamız Always Running modunda çalışsa veya Idle Timeout olmasa bile belirli bir süre sonra Application Pool ilgili pool’u recycle (restart) edecektir. Pool restart edildiğinde uygulama, istek gelene kadar başlamayacak ve istek gelip başladıktan sonrada bir sonraki recycle işlemine kadar çalışmasına devam edecektir. Bu kurulan role sayesinde sürekli olarak otomatik çalışmasını sağlayabileceğiz.
1.1 Windows 10 İçin “Application Initialization” Aktif Etmek
2) Application Pool Ayarlarını Yapmak.
IIS Yöneticisinde, uygulamanın altında çalıştığı uygulama havuzuna sağ tıklayıp ve “Advanced Settings” seçeneğini seçin. Aşağıdaki değerleri güncelleyin:
- .NET CLR version = v4.0 (Uygulamaya göre farklı versiyonlar seçilebilir)
- Start Mode = Always Running
- Idle Time-Out (minutes) = 0
IIS’te bir uygulama varsayılan olarak 20 dakika boyunca istek almaz ise kapanır. Bunu Idle Time-out değerini 0 yaparak devre dışı bırakıyoruz.
Uygulamanın devamlı çalışmasını sağlamak için Start Mode seçeneğini Always Running yapıyoruz.
3) İlgili Siteyi/Uygulamayı Yapılandırmak
IIS Yöneticisinde, ilgili siteye sağ tıklayın, “Manage Website” –>”Advanced Settings“ı seçin ve “Preload Enabled” değerini true olarak ayarlayın. Bu ayar sayesinde uygulamanın kendiliğinden başlamasını sağladık.
Son Olarak
Bu ayarları yaptıktan sonra ilgili aplication pool’u ve uygulamamızı restart ediyoruz.
Hayırla kalınız.