Bazı kaynaklar üzerinde özel bir kilit tutan bir sitem var. Bu kaynakların kilidini uygun bir zamanda almak ve serbest bırakmak için .NET Application_Start ve Application_End olaylarını kullandım. Bunun doğru çalışması için, herhangi bir zamanda çalışan uygulamamın yalnızca bir örneği olabilir.
Bunun gerçekleşmesi
Disable Overlapped Recycleiçin, Uygulama havuzundaki mülkü ayarlıyorum
True. Bu özelliğin, eski çalışan işleminin, uygulama havuzu geri dönüştürüldüğünde yeni bir başlamadan önce tamamen kapanmasını sağlaması beklenir. Uygulama havuzu, IIS aracılığıyla manuel olarak geri dönüştürüldüğünde, boşta kalma zaman aşımına ulaşılmasının bir sonucu olarak veya belirli bir zaman / zaman aralığı kurallarına göre otomatik olarak bu otomatik olarak çalışır.
Ancak, site için web.config güncellendiğinde, bu kural uygulanmıyor - Eski kural kapatılmadan önce yeni bir alt işlem başlatılır. Bu kötü şeylerin olmasına neden olur. Ben
Disable Recycling for Configuration Changesmülk seti
Falsebu gelişme sırasında sık gerçekleşen - web.config güncellendiğinde uygulama havuzu geri dönüşümlü olsun istiyoruz kadar.
Bu beklenen bir şey mi, yoksa IIS'de bir hata mı? Web.config'ü değiştirmek uygulama havuzunu geri dönüştürmeyecek şekilde ayarlamak için tek seçeneğim mi? Bunu yapmamayı tercih ederim, çünkü insanların yapılandırmayı değiştirmesi ve uygulama havuzunu geri dönüştürmeyi unutmasıyla baş ağrısına neden olacağından oldukça eminim.
Güncelleştirme:
Daha açık olmak gerekirse
start, eski işçi işleminin kapatılması bitmeden önce yeni işçi işlem olayı çağrıldığında, eski işçi işlem
endolayı hiçbir zaman çağrılmaz - Sıra dışı olmaz, asla gerçekleşmez.