Permintaan pertama setelah beberapa saat selalu lambat - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS

12

Saya hosting aplikasi ASP.NET MVC 5 lalu lintas rendah pada VPS dengan Windows Server 2012 R2 / IIS 8.5, dengan RAM 1 GB.

Masalah saya adalah bahwa permintaan pertama setelah beberapa waktu tanpa permintaan selalu mendapat respons lambat - sekitar 1,5 detik menurut Alat Dev Chrome. Permintaan / tanggapan penyegaran berikutnya hanya membutuhkan waktu sekitar 45 ms .

Saya sudah mengatur Start Mode ke AlwaysRunning pada kumpulan aplikasi, dan Preload Diaktifkan ke True di tingkat situs web, tetapi sama sekali tidak berpengaruh . Bahkan jika tidak ada perubahan / unggahan apa pun, setelah beberapa waktu berlalu, dengan permintaan berikutnya dibutuhkan 1,5 detik untuk mendapatkan respons.

michalstanko
sumber

Jawaban:

9

Masalahnya adalah, Anda perlu menginstal fitur IIS Application Initialization. Maka itu harus bekerja dengan konfigurasi Anda.

Gambar ini dari blog Rick Strahl :

Fitur IIS

Ingat juga untuk mengatur:

  • Mulai Mode hingga Selalu Menjalankan di kumpulan aplikasi
  • Preload Diaktifkan ke True pada level situs web

Anda dapat mengatur pengaturan ini tanpa Modul Inisialisasi Aplikasi diinstal, tetapi mereka tidak akan berpengaruh.

Informasi lebih lanjut di sini .

Christian Gollhardt
sumber
0

Apakah ada kemungkinan ketidaksesuaian versi antara versi .NET Framework yang ditargetkan situs web Anda dibandingkan dengan versi .NET Framework Runtime yang diinstal di Web Server?

Dan apakah Anda menggunakan situs web yang tidak dikompilasi dan / atau dapat diperbarui? -

Pengaturan Precompile Lanjutan

Pembaruan versi .NET Runtime dimaksudkan untuk sangat kompatibel ke belakang. Namun, saya mengalami masalah yang sangat mirip ketika memigrasi beberapa situs web yang menargetkan .NET 4.5.1 Framework dari server Windows Server 2008 R2 ke server Windows Server 2012 R2 yang ditambal ke .NET 4.6 Runtime. Semua halaman awal saya dimuat (di beberapa situs web) mulai memakan waktu dua menit untuk setiap halaman, alih-alih sepersekian detik. Dan semua percobaan saya dengan pengaturan IIS yang berbeda tidak berhasil dalam menyelesaikan masalah.

Pada akhirnya saya dapat menyelesaikan masalah ini dengan satu dari dua cara:

  1. Sepenuhnya menciptakan kembali server, ditambal ke. NET 4.5 Runtime memang menyelesaikan masalah saya (bersama dengan menambahkan pengaturan registri untuk memblokir instalasi. NET 4.6.1 ).
  2. Atau, menugaskan kembali situs web saya dengan "Precompile" dicentang dan dengan "Izinkan untuk diperbarui" tidak dicentang juga menyelesaikan masalah saya.

Sebaliknya, semua upaya saya untuk memutar kembali atau memperbaiki versi .NET Runtime di server ke .NET 4.5 Runtime tidak menyelesaikan masalah pemuatan laman saya. (Pada dasarnya tidak ada proses yang bersih dan andal untuk sepenuhnya mengembalikan .NET Runtime singkat dari pencitraan ulang server.)

Mac
sumber