Bir IIS sunucusunda Web.config dosyasını (çalışma zamanında) düzenlediğimizde tam olarak ne olduğunu söyleyebilir misiniz?


11

Bir IIS sunucusunda Web.config dosyasını (çalışma zamanında) düzenlediğimizde tam olarak ne olduğunu söyler misiniz?

Web.config dosyasına bağımlı uygulama otomatik olarak yeniden başlatılıyor mu? Evet ise, otomatik yeniden başlatmayı (veya web.config dosyasını yeniden yüklemeyi) iptal etmek mümkün mü?


IIS'nin web.config dosyasını değiştirdikten sonra okuyup okumadığını görmek için dosya erişimi denetimini açmayı deneyebilirsiniz.
Eric H

Yanıtlar:


10

Web.config dosyasına her dokunduğunuzda ASP.NET AppDomain yeniden başlatılır. Bir klasör için Dosya Değişikliği Bildirimi'ni (FCN) kapatmak mümkündür, ancak yardımcı olabilirseniz genellikle en iyi bahis değildir. Kapatırsanız, değişikliklerin etkili olması için uygulama havuzunu manuel olarak geri dönüştürmeniz gerekir.

IIS7'den önce, yalnızca ASP.NET değişiklikleri AppDomain'in geri dönüştürülmesine neden olur, ancak IIS7 ve web.config dosyasında bulunan ayarların çoğunda bu daha yaygın bir sorundur. yani IIS 7 Yöneticisi'nde varsayılan bir dokümanın değiştirilmesi AppDomain'in şimdi geri dönüştürülmesine neden olacaktır.

İdeal olarak, değişim oranınızı düşük tutmanız veya bazen değişikliği web.config yerine applicationHost.config dosyasına (AppDomain geri dönüşümüne neden olmaz) uygulamanız yeterlidir.


4

Web.config dosyasını kullanan uygulama, değiştirdiğinizde yeniden başlatılır, burada daha fazla bilgi vardır:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

Bunun olmasını önlemek için herhangi bir yol bilmiyorum (ve neden yapmak istediğinizden emin değilim - belki de elde etmeye çalıştığınız şeyin bazı ayrıntılarını sağlayabilirsiniz).


3

ASP.NET 2.0, yeniden başlatma nedeni ile birlikte uygulama yeniden başlatmalarını günlüğe kaydetmek için yerleşik Sağlık İzleme Olayları'nı kullanabilirsiniz. Bu, ne zaman ve ne sıklıkta meydana geldiğini açıkça belgelemenize olanak tanır. Bu, makinenin ana web.config dosyasını düzenleyerek gerçekleştirilir.

Daha fazla bilgi için:

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx


3

[SADECE BİR NOT]

Biliyorum bu eski bir şey ama bu hala unutulmayı hak ediyor.

Scott Forsyth - MVP yanıtı yanlış.

Web.config dosyasına her dokunduğunuzda ASP.NET AppDomain yeniden başlatılır.

Bu yanlış.


Çırpma teli cevabı ,önemli bir ayrıntı içeren MSDN'ye bir bağlantı içerdiğinden, teknik olarak en doğru ve eksiksiz cevaptır:

Bir uygulamanın yeniden başlatılması gerektiğinde, uygulama etki alanını yeniden başlatmadan ve yeni derlemeleri yüklemeden önce ASP.NET varolan uygulama etki alanından ve eski derlemelerden beklemedeki tüm istekleri sunar.

Bu, özellikle web hizmetleri konuşurken önemlidir. Bu, gün ortasında güvenli bir şekilde yeniden başlatmanın iyi olabileceğini gösterir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.