2017-09-27 86 views
5

, biz "ısınmak" istiyorum yüklendikten sonra uygulama (veya uygulama havuzu sonra geri dönüşümlü olmuştur). Bazı sık kullanılan arama verileri SQL Server veritabanından alınmalı ve .NET'in sağladığı genel System.Runtime.Caching.MemoryCache nesnesine depolanmalıdır. Eğer ASP.NET uygulaması için özel bir IIS ile özel bir VM bir durum için ASP.NET MVC - Uygulama ısınma - iki yaklaşımdan hangisi? Bizim ASP.NET MVC uygulamasının tepki süresini hızlandırmak amacıyla

, ben her şeyden önce "Her zaman Running" olarak uygulama havuzu ayarlayın - bu adım 1. bulunuyor. System.Web.Hosting.IProcessHostPreloadClient arayüzüne dayalı açıklandığı in this blog post by Scott Gu olarak

  1. Uygulama ısınma:

    Anlıyorum iki seçenek vardır, bu durum göz önüne alındığında. Doğru olarak anlarsam, bu kod uygulama havuzu başlatıldığında ve ilk istek uygulamanın içine kabul edilmeden önce çalışır

  2. global.asax.cs'da Application_Start olayını kullanın. Doğru anladıysam, uygulama ilk kez başlatıldığında (kurulumdan sonra otomatik olarak gerçekleşir şekilde uygulama havuzu "Her zaman Running" olarak ayarlandığında beri? - sağ), bu olay, sadece kez denir

Yani - "ön ısınma" Başvurunuz tercih edilen yoldur - bu kurulumu verilen? Bu iki yaklaşım arasında önemli farklılıklar var mı? Biri diğerine yaklaşırken ne fark etmeliyim? daha ayrıntılı olarak bu açıklayan herhangi girişler, ipuçları, uyarılar veya başka bağlantılar için

teşekkürler!

+0

Uygulamanız önceden derlenmiş mi? eğer birleştirildiyse/birleşmemişse. Bunun "ısınma" zamanınızı etkileyeceğine inanıyorum. Bana her zaman koşan yükün, uygulamanızın bütününün orada bellekte oturduğunu ve asla "gerektiği gibi" bırakmadığını görüyor musunuz? – DaniDev

cevap

2

Kısa cevap, IProcessHostPreloadClient kullanmak - bu başlangıçta hemen çalışır.

Application_Start bir yanlış adlandırmadan oluşur, aslında ilk isteği üzerinden tetiklenir. Bu, sitenin geri dönüşüm/yeniden başlatma ve boşta oturabileceği, ısınabileceği anlamına gelir. Siteniz IIS 7 veya üzerinde ise

Ben Application_Start kullanmak için bir sebep farkında değilim.

+0

İlgili/ilgili bir soru: https://stackoverflow.com/questions/10623303/run-application-start-immediately-when-application-pool-restarts-in-iis – STW