Alternatif untuk kumpulan aplikasi startMode = "AlwaysRunning"

8

Jika aplikasi web meminta pengaturannya sendiri dengan kumpulan aplikasi itu harus dikonfigurasi di applicationHost.config sebagai:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

Apakah hasil yang sama dapat dicapai dengan hanya meminta halaman dari server setiap menit? Atau apakah pengaturan startMode ke nilai ini memiliki implikasi lain juga?

Chris Marisic
sumber

Jawaban:

6

Tampaknya sama. Tampaknya, karena Microsoft melihat pengembang harus melakukan ini, mereka membuat fitur baru ini untuk secara otomatis menangani ini.

[Pengembang] kemudian merancang skrip khusus untuk mengirim permintaan palsu ke aplikasi untuk "membangunkan" secara berkala dan mengeksekusi kode ini sebelum pelanggan menabraknya, atau hanya menyebabkan pelanggan pertama yang malang yang mengakses aplikasi untuk menunggu sementara logika ini selesai sebelum memproses permintaan (yang dapat menyebabkan penundaan lama bagi mereka).

ASP.NET 4 dikirimkan dengan fitur baru yang disebut "auto-start" yang lebih baik mengatasi skenario ini, dan tersedia ketika ASP.NET 4 berjalan pada IIS 7.5 (yang dikirimkan dengan Windows 7 dan Windows Server 2008 R2). Fitur mulai otomatis menyediakan pendekatan terkontrol untuk memulai proses pekerja aplikasi, menginisialisasi aplikasi ASP.NET, dan kemudian menerima permintaan HTTP.

Dari Aplikasi ASP.NET Auto-Start Scott Guthrie (VS 2010 dan .NET 4.0 Series) .

Jadi kecuali Anda tidak menggunakan IIS 7.5, saya katakan hanya menggunakan fungsionalitas bawaan.

(Dan terima kasih; Saya tidak tahu tentang fitur ini, tetapi pasti bisa memikirkan situs yang saya kembangkan yang bisa menggunakannya.)

James Skemp
sumber
6
Sayang sekali mereka menciptakan fitur ini di level applicationHost.config. Itu seharusnya di tingkat web.config.
Chris Marisic
4

IIS 7.5 termasuk bendera tambahan pada tingkat Situs atau Aplikasi yang disebut preloadEnabled. Pengaturan ini menjadi benar akan membuat permintaan palsu untuk menghangatkan situs. Ini harus digunakan bersama dengan autoStart.

mulai otomatis

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

preloadEnabled

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>
Oliver
sumber