Inisialisasi Aplikasi IIS 8.0

oleh Shaun Eagan

Kompatibilitas

Versi Catatan
IIS 8.0 Inisialisasi Aplikasi bawaan untuk IIS 8.0.
IIS 7.5 Inisialisasi Aplikasi dirilis sebagai modul out-of-band untuk IIS 7.5.
IIS 7.0 Inisialisasi Aplikasi tidak didukung untuk IIS 7.0.

Masalah

Masalah umum yang dihadapi oleh administrator situs web adalah kebutuhan untuk melakukan tugas inisialisasi dan tugas "pemanasan" untuk aplikasi web. Aplikasi web yang lebih besar dan lebih kompleks mungkin perlu melakukan pemrosesan startup yang panjang, cache dalam memori utama, menghasilkan konten, dll... sebelum melayani permintaan HTTP pertama.

Solusi

Fitur Inisialisasi Aplikasi IIS 8.0 memungkinkan administrator situs web mengonfigurasi IIS 8.0 untuk secara proaktif melakukan tugas inisialisasi untuk satu atau beberapa aplikasi web. Saat aplikasi sedang diinisialisasi, IIS 8.0 juga dapat dikonfigurasi untuk mengembalikan konten statis sebagai tempat penampung atau "halaman percikan" hingga aplikasi menyelesaikan tugas inisialisasinya.

Fitur Inisialisasi Aplikasi dikonfigurasi melalui kombinasi aturan global dan khusus aplikasi yang memberi tahu IIS 8.0 bagaimana dan kapan harus menginisialisasi aplikasi web. Fitur Inisialisasi Aplikasi juga mendukung integrasi dengan Modul Penulisan Ulang Url IIS untuk mendukung penanganan konten tempat penampung yang lebih kompleks saat aplikasi masih menginisialisasi.

Catatan

Ada ketidaksesuaian yang diketahui antara Inisialisasi Aplikasi dan Perutean Permintaan Aplikasi (ARR). Tidak disarankan untuk menggunakan Inisialisasi Aplikasi pada komputer dengan ARR terinstal.

Instruksi Langkah demi Langkah

Prasyarat

Fitur Inisialisasi Aplikasi mengharuskan IIS 8.0 diinstal. Selain itu, fitur Inisialisasi Aplikasi dalam sub-fitur "Pengembangan Aplikasi" IIS perlu diinstal.

Cuplikan layar berikut dari UI Pengelola Server Windows Server 2012 memperlihatkan fitur Inisialisasi Aplikasi.

Cuplikan layar memperlihatkan fitur Inisialisasi Aplikasi yang diinstal pada Windows Server 2012.

Catatan

Panduan ini juga menggunakan aplikasi ASP.NET 4.5 untuk menunjukkan fitur Inisialisasi Aplikasi. Lampiran di akhir dokumen ini mencakup aplikasi sampel dan instruksi tentang menyiapkan aplikasi di komputer Anda.

Solusi untuk bug yang diketahui

  • Saat ini tidak ada bug yang diketahui untuk fitur ini.

Inisialisasi Aplikasi Global

Fitur Inisialisasi Aplikasi dapat dikonfigurasi di dua tempat: file applicationHost.config di seluruh komputer, dan file web.config tingkat aplikasi. Konfigurasi dalam file applicationHost.config berisi pengaturan inisialisasi aplikasi "global", sementara file web.config tingkat aplikasi berisi pengaturan inisialisasi aplikasi "lokal".

Dalam panduan ini, Anda akan mengonfigurasi aplikasi sampel untuk selalu diinisialisasi ketika kumpulan aplikasi yang terkait dengan aplikasi dimulai. Karena perilaku kumpulan aplikasi hanya dapat dikonfigurasi dalam applicationHost.config, menjalankan inisialisasi aplikasi setiap kali kumpulan aplikasi dimulai dianggap sebagai bagian dari pengaturan inisialisasi aplikasi "global".

Modifikasi dalam applicationHost.config

Buka file applicationHost.config yang terletak di %WINDIR%\system32\inetsrv\config notepad. (Ingatlah untuk menjalankan editor teks dengan opsi "Jalankan sebagai Administrator"!)

Temukan bagian <konfigurasi applicationPools> , lalu cari entri kumpulan aplikasi dengan nama ".NET v4.5".

Ubah entri kumpulan aplikasi sehingga kumpulan aplikasi selalu berjalan. Untuk aplikasi tempat Anda ingin inisialisasi aplikasi global terjadi, Anda biasanya ingin kumpulan aplikasi terkait dimulai dan dijalankan. Atribut tebal dalam cuplikan konfigurasi menunjukkan apa yang harus ditambahkan ke entri konfigurasi.

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

Gulir ke bawah sedikit lebih dalam applicationHost.config ke <sites> elemen konfigurasi. Di dalam bagian itu akan <application> ada entri untuk aplikasi sampel (lihat Lampiran untuk instruksi tentang membuat aplikasi sampel di komputer Anda). Aplikasi ini disebut "appinit", dan memiliki nilai atribut jalur "/appinit". <application> Ubah entri dengan menambahkan atribut preloadEnabled tebal seperti yang ditunjukkan dalam cuplikan konfigurasi lalu simpan perubahan Anda.

<application path="/appinit" preloadEnabled="true" applicationPool=".NET v4.5">

Mengatur preloadEnabled ke "true" memberi tahu IIS 8.0 bahwa ia mengirim permintaan "palsu" ke aplikasi ketika kumpulan aplikasi terkait dimulai. Itulah sebabnya pada langkah sebelumnya kami mengatur startMode kumpulan aplikasi ke "AlwaysRunning".

Dengan kombinasi kumpulan aplikasi selalu berjalan, dan aplikasi itu sendiri ditandai untuk selalu menerima permintaan palsu, setiap kali komputer dimulai ulang dan/atau layanan World Wide Web didaur ulang, IIS 8.0 memastikan bahwa instans kumpulan aplikasi berjalan dan bahwa aplikasi "/appinit" selalu dikirimi permintaan palsu untuk memicu aplikasi untuk memulai.

Modifikasi dalam web.config aplikasi

Dengan menggunakan instans kedua Notepad, buka tingkat aplikasi web.config file yang terletak di lokasi berikut. (Ingatlah untuk menjalankan editor teks dengan opsi "Jalankan sebagai Administrator"!)

C:\inetpub\wwwroot\appinit

Catatan: Ubah huruf kandar jika Situs Web Default Anda diinstal pada drive fisik yang berbeda.

File web.config memiliki beberapa bagian konfigurasi yang sudah diisi sebelumnya, tetapi dikomentari. Hapus komentar cuplikan konfigurasi yang ditampilkan yang ada di dalam bagian <system.webServer> konfigurasi. Cuplikan ini tepat di bawah komentar "Latihan 1 - Langkah 1" dalam file web.config. Kemudian simpan perubahan Anda.

<applicationInitialization
    remapManagedRequestsTo="Startup.htm" 
    skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

Elemen applicationInitialization memberi tahu IIS bahwa elemen tersebut harus mengeluarkan permintaan ke Url akar aplikasi ("/default.aspx" dalam contoh ini) untuk menginisialisasi aplikasi. Sementara IIS menunggu permintaan untuk "/default.aspx selesai, IIS akan melayani "Startup.htm" ke klien browser aktif apa pun. "Startup.htm" adalah "halaman percikan" untuk aplikasi.

Menjalankan aplikasi

Dari jendela prompt perintah yang ditingkatkan , daur ulang World Wide Web Service dengan perintah yang ditunjukkan di bawah ini:

net stop w3svc & net start w3svc

Ingatlah untuk menjalankan jendela prompt perintah menggunakan opsi "Jalankan sebagai Administrator"!

Menggunakan Internet Explorer, navigasikan ke Url berikut:

http://localhost/appinit/default.aspx

Browser mengembalikan halaman "Startup.htm" statis dengan latar belakang abu-abu selama beberapa detik pertama karena itu adalah "halaman percikan" yang telah dikonfigurasi di web.config. Anda dapat terus menyegarkan halaman di browser web Anda dan mengamati bahwa sekitar delapan detik kemudian (disimulasikan dengan tidur utas di aplikasi sampel global.asax) Anda menerima konten "nyata" untuk default.aspx dengan latar belakang putih. Ini menunjukkan bahwa inisialisasi aplikasi selesai.

Mengonfigurasi daur ulang proses yang tumpang tindih

IIS 8.0 mengintegrasikan inisialisasi aplikasi global dengan daur ulang proses yang tumpang tindih dengan melakukan inisialisasi aplikasi dalam proses yang tumpang tindih di latar belakang. Ketika IIS mendeteksi bahwa proses pekerja aktif sedang didaur ulang, IIS tidak mengalihkan lalu lintas aktif ke proses pekerja daur ulang baru sampai proses pekerja baru selesai menjalankan semua Url inisialisasi aplikasi dalam proses baru. Ini memastikan bahwa pelanggan yang menelusuri situs web Anda tidak melihat halaman inisialisasi aplikasi setelah aplikasi ditayangkan dan berjalan.

Kembali ke instans Notepad yang memiliki applicationHost.config. Ubah entri kumpulan aplikasi untuk ".NET v4.5" agar terlihat seperti cuplikan konfigurasi yang ditunjukkan di bawah ini:

<add name=".NET v4.5"
                startMode="AlwaysRunning"
    managedRuntimeVersion="v4.0" >
  <recycling logEventOnRecycle="Schedule">
    <periodicRestart requests="30" />
  </recycling>
</add>

Ingatlah untuk menyimpan perubahan Anda!

Elemen <daur> ulang memberi tahu IIS untuk mendaur ulang proses pekerja setiap 30 permintaan HTTP.

Menjalankan aplikasi untuk kedua kalinya

Dari jendela prompt perintah yang ditingkatkan , daur ulang World Wide Web Service dengan perintah yang ditunjukkan di bawah ini:

net stop w3svc & net start w3svc

Menggunakan instans baru Internet Explorer, sekali lagi navigasikan ke:

http://localhost/appinit/default.aspx

Perhatikan bahwa halaman percikan "Startup.htm" dengan latar belakang abu-abu ditampilkan.

Selanjutnya, tarik Task Manager dan pastikan tab Proses ditampilkan. Urutkan daftar proses menurut nama hingga Anda melihat satu instans w3wp.exe berjalan. Instans tersebut adalah proses pekerja yang saat ini menjalankan aplikasi ASP.NET "appinit".

Cuplikan layar memperlihatkan daftar proses Task Manager yang menjalankan satu instans file yang dapat dieksekusi w 3 w p.

Refresh browser beberapa kali sampai konten dari halaman default.aspx nyata dikembalikan. Anda tahu bahwa aplikasi menjalankan halaman default.aspx "nyata" ketika latar belakang berubah menjadi putih. Selanjutnya, atur jendela di layar Anda sehingga Anda dapat melihat Task Manager dan browser.

Sekarang beralih kembali ke browser dan refresh halaman setidaknya 30 kali, ini menyebabkan IIS mendaur ulang kumpulan aplikasi. Anda dapat berhenti me-refresh halaman saat melihat instans kedua w3wp.exe muncul di daftar proses Pengelola Tugas seperti yang ditunjukkan di bawah ini:

Cuplikan layar memperlihatkan instans kedua dari file yang dapat dieksekusi w 3 w p dalam daftar proses Pengelola Tugas.

Cuplikan layar menunjukkan instans kedua w3wp.exe telah dimulai karena batas daur ulang proses yang ditetapkan sebelumnya.

Anda dapat terus me-refresh jendela browser secara berkala selama sepuluh detik ke depan atau lebih. Perhatikan bahwa default.aspx terus berjalan. Ketika daur ulang yang tumpang tindih selesai, satu instans w3wp.exe menghilang dari jendela Proses Pengelola Tugas.

Selama durasi daur ulang yang tumpang tindih, Anda terus melihat konten default.aspx "nyata", meskipun inisialisasi aplikasi dikonfigurasi untuk aplikasi dan menjalankan Url inisialisasi di latar belakang dalam instans baru w3wp.exe.

Penulisan Ulang Url dan Inisialisasi Aplikasi

Secara default, inisialisasi aplikasi hanya memungkinkan Anda menentukan satu Url "halaman splash" untuk ditampilkan saat aplikasi menginisialisasi. Namun fitur Inisialisasi Aplikasi mendukung beberapa variabel server yang dapat digunakan untuk mengontrol pemrosesan permintaan saat aplikasi menginisialisasi. Ini memungkinkan Anda membuat aturan deklaratif menggunakan Modul Penulisan Ulang Url yang berisi pemetaan yang lebih kompleks ke konten statis yang telah dibuat sebelumnya.

Dalam panduan ini, Anda mengganti atribut remapManagedRequestsTo dengan sekumpulan aturan Penulisan Ulang Url yang mencapai hasil akhir yang sama.

Catatan: Lihat lampiran untuk instruksi tentang menginstal Penulisan Ulang URL.

Modifikasi dalam applicationHost.config

Menggunakan instans Notepad yang telah applicationHost.config terbuka, kembalikan kumpulan aplikasi dan elemen aplikasi untuk menonaktifkan semua pemrosesan inisialisasi aplikasi global. Pengaturan global dihapus dalam langkah ini karena sisa panduan ini berfokus pada perilaku Inisialisasi Aplikasi yang dikonfigurasi.

Entri applicationHost.config untuk kumpulan aplikasi dan aplikasi seperti yang ditunjukkan di bawah ini.

Entri konfigurasi kumpulan aplikasi:

<add name=".NET v4.5" managedRuntimeVersion="v4.0" />

Entri konfigurasi aplikasi:

<application path="/appinit" applicationPool=".NET v4.5">

Ingatlah untuk menyimpan perubahan Anda ketika Anda selesai!

Selain itu, untuk memastikan perubahan berlaku di IIS, dari jendela prompt perintah yang ditingkatkan , daur ulang Layanan Web World Wide dengan perintah yang ditunjukkan di bawah ini:

net stop w3svc & net start w3svc

Modifikasi pada web.config tingkat aplikasi

Menggunakan instans Notepad yang membuka web.config tingkat aplikasi, hapus atribut remapManagedRequestsTo dari <applicationInitialization> elemen . Bagian <applicationInitialization> konfigurasi sekarang akan terlihat seperti cuplikan konfigurasi ini.

<applicationInitialization skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

<applicationInitialization> Karena elemen tidak lagi menentukan Url untuk memetakan ulang permintaan, tambahkan sekumpulan aturan Penulisan Ulang Url. Selanjutnya, tambahkan aturan penulisan ulang yang secara eksplisit memetakan permintaan yang dibuat ke "default.aspx", serta "/" untuk merutekan ke "Startup.htm". Dua aturan diperlukan karena Modul Penulisan Ulang Url tidak "tahu" tentang cara kerja dokumen default. Karena "/" sama dengan "default.aspx" dalam aplikasi ASP.NET, Anda memerlukan dua aturan Penulisan Ulang Url - satu aturan untuk setiap variasi Url.

Aturan baru ditampilkan dalam huruf tebal di bawah ini. Atau Anda dapat membatalkan komentar aturan Penulisan Ulang Url yang telah diisi sebelumnya di bawah komentar "Permintaan Pemetaan Latihan 2 - Langkah 2 ke Halaman Beranda" dalam file web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
  </rules>
</rewrite>

Beberapa item yang perlu diperhatikan tentang aturan ini: pertama, atribut stopProcessing diatur ke "true" pada <aturan /> elemen. Ini diperlukan untuk menambahkan aturan Penulisan Ulang Url catch-all nanti, dan untuk permintaan ke default.aspx atau "/" yang tidak Anda inginkan untuk menjalankan aturan catch-all.

Kedua, perhatikan bahwa kami memiliki kondisi Penulisan Ulang Url dalam <kondisi /> elemen . Kondisi ini secara efektif mengatakan "hanya terapkan aturan ketika aplikasi dalam status inisialisasi". Variabel server "APP_WARMING_UP" diatur oleh IIS ke nilai "1" ketika inisialisasi aplikasi aktif dan IIS masih memproses semua Url inisialisasi.

Terakhir, perhatikan bahwa tindakan telah didefinisikan untuk menulis ulang permintaan aktif untuk menjalankan "Startup.htm". Aturan ini memiliki efek memberi tahu IIS untuk meneruskan permintaan ke handler file statis yang kemudian merender halaman statis Startup.htm.

Selanjutnya, Anda menambahkan aturan penulisan ulang catch-all. Saat menggunakan Modul Penulisan Ulang Url bersama dengan inisialisasi aplikasi, aturan catch-all yang diaktifkan jika tidak ada aturan sebelumnya yang cocok. Tambahkan aturan tebal yang ditunjukkan di bawah ini ke bagian penulisan ulang sebagai aturan catch-all. Atau Anda dapat membatalkan komentar aturan catch-all yang telah diisi sebelumnya di web.config yang terletak di bawah komentar "Latihan 2 - Langkah 2 Menyiapkan Aturan Catch-All" dalam file web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="All Other Requests">
      <match url=".*" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <serverVariables>
        <set name="SKIP_MANAGED_MODULES" value="0" />
      </serverVariables>
      <action type="Rewrite" url="{URL}" />
    </rule>
  </rules>
</rewrite>

Simpan perubahan anda setelah selesai!

Aturan baru cocok dengan Url apa pun yang mencapainya dan memberi tahu IIS untuk terus memproses permintaan yang dibuat ke Url masuk. Aturan ini juga mengatur variabel server yang disebut "SKIP_MANAGED_MODULES" ke nilai "0" - yang sama dengan "false". Pengaturan ini memberi tahu IIS bahwa ia harus memperlakukan permintaan yang ditulis ulang dari Penulisan Ulang Url dengan cara yang sama seolah-olah permintaan biasanya tiba dari kabel.

Menjalankan aplikasi

Dari jendela prompt perintah yang ditingkatkan, daur ulang World Wide Web Service dengan perintah yang ditunjukkan di bawah ini:

net stop w3svc & net start w3svc

Menggunakan instans baru Internet Explorer, sekali lagi navigasikan ke:

http://localhost/appinit/default.aspx

Meskipun aturan Penulisan Ulang Url sekarang digunakan untuk menentukan logika halaman percikan, Anda masih melihat perilaku yang sama dari panduan pertama. Halaman Startup.htm dengan latar belakang abu-abu pada awalnya ditampilkan. Jika Anda me-refresh browser secara berkala, sekitar delapan detik kemudian Anda kembali melihat latar belakang halaman beralih ke putih, menunjukkan bahwa halaman default.aspx "nyata" sedang dilayani sekarang inisialisasi aplikasi selesai.

Aturan Halaman Splash Kompleks

Panduan sebelumnya menggunakan inisialisasi aplikasi sebagai pemetaan lurus ke depan url "X" ke Url "Y". Dalam panduan ini, Anda akan menerapkan skenario inisialisasi aplikasi yang lebih kompleks.

Di browser Anda, navigasikan ke kedua Url berikut:

  • http://localhost/appinit/ImageHandler.ashx?image=Lighthouse
  • http://localhost/appinit/ImageHandler.ashx?image=Tulips

Url ini adalah contoh konten statis yang dihasilkan secara dinamis. Untuk aplikasi sampel ini, kode di dalam ImageHandler.ashx melihat kunci querystring "image". Jika nilai querystring tersebut adalah "Lighthouse" atau "Tulips" handler ASP.NET mengirimkan JPG terkait yang terletak di folder App_Data.

Karena penangan gambar hanya mengembalikan gambar, Anda ingin dapat terus mengembalikan gambar yang sesuai bahkan selama inisialisasi aplikasi. Meskipun mekanisme penyajian gambar-gambar ini menggunakan kode terkelola, Anda mungkin ingin dengan cepat menyajikan gambar yang dibuat sebelumnya kepada pelanggan bahkan jika aplikasi ASP.NET yang mendasarinya membutuhkan waktu lama untuk memulai dan menginisialisasi dirinya sendiri.

Modifikasi pada web.config tingkat aplikasi

Menggunakan instans Notepad yang memiliki web.config tingkat aplikasi terbuka, tambahkan aturan Penulisan Ulang Url lain sebelum aturan catch-all akhir. Cuplikan baru yang akan ditambahkan ditunjukkan di bawah ini. Atau Anda dapat membatalkan komentar aturan penangan gambar yang telah diisi sebelumnya di web.config yang terletak di bawah komentar "Latihan 3 - Langkah 1 Aturan Halaman Splash Kompleks" di file web.config.

<rule name="Image Handler Remapping" stopProcessing="true">
  <match url="ImageHandler.ashx" />
  <conditions>
    <add input="{APP_WARMING_UP}" pattern="1" /> 
    <add input="{QUERY_STRING}" pattern="image=([A-Za-z]+)&amp;?" /> 
  </conditions>
  <action type="Rewrite" url="Images/{C:1}_static.jpg" appendQueryString="false" />
</rule>

Simpan perubahan saat Anda selesai.

Sama seperti aturan penulisan ulang untuk default.aspx dan "/", aturan ini memiliki atribut stopProcessing yang diatur ke "true" untuk memastikan bahwa permintaan ke ImageHandler.ashx tidak secara tidak sengaja jatuh ke aturan penulisan ulang catch-all akhir selama inisialisasi aplikasi.

Untuk permintaan ke "ImageHandler.ashx," aturan penulisan ulang menggunakan grup pengambilan ekspresi reguler untuk mengekstrak gambar yang diminta dari query-string. Pola definisi pola pencocokan ="image=([A-Za-z]+)&?" memberi tahu IIS untuk mengekstrak nilai variabel string kueri "gambar". Nilai tersebut kemudian digunakan dalam atribut url atribut tindakan: url="Images/{C:1}_static.jpg".

Atribut url pada elemen tindakan memberi tahu modul Penulisan Ulang Url untuk menulis ulang permintaan ImageHandler.ashx untuk mengarahkan ke file di subdirektori Gambar aplikasi. Selain itu, nilai query-string yang diambil oleh ekspresi reguler digunakan untuk membantu membentuk nama file yang pada akhirnya akan dilayani dari subdirektori Gambar. Misalnya, permintaan ke ImageHandler.ashx?image=Tulips akan ditulis ulang ke Gambar/Tulips_static.jpg.

Jika Anda menelusuri ke direktori inetpub\wwwroot\appinit menggunakan Windows Explorer dan melihat di subdirektori Gambar, Anda akan melihat dua file: satu mewakili versi "statis" Tulips.jpg, dan yang lainnya mewakili versi "statis" Lighthouse.jpg. Gambar statis ini bertindak sebagai konten pra-hasil yang dapat dilayani saat aplikasi menginisialisasi.

Menjalankan aplikasi

Dari jendela prompt perintah yang ditingkatkan, daur ulang World Wide Web Service dengan perintah yang ditunjukkan di bawah ini:

net stop w3svc & net start w3svc

Menggunakan Internet Explorer menavigasi ke:

http://localhost/appinit/ImageHandler.ashx?image=Lighthouse

atau

http://localhost/appinit/ImageHandler.ashx?image=Tulips

Perhatikan bagaimana gambar yang dikembalikan dalam kedua kasus menyertakan marka air yang menunjukkan ini adalah versi gambar yang telah dibuat sebelumnya "statis". Marka air adalah teks di bagian atas gambar yang mengatakan "Gambar ini adalah versi statis...."

Jika Anda me-refresh browser sekitar 10 detik kemudian, Anda akan melihat perubahan konten gambar yang dikembalikan ke konten "nyata" yang dilayani oleh handler ImageHandler.ashx. Marka air menghilang, yang menunjukkan bahwa konten sekarang dibuat secara dinamis oleh handler ASP.NET karena aplikasi telah menyelesaikan inisialisasi.

[Catatan: Jika Internet Explorer tampaknya tidak menyegarkan, klik ikon "dokumen rusak" di bilah alamat atau ikon refresh untuk memaksa Internet Explorer memuat ulang halaman.]

Ringkasan

Fitur Inisialisasi Aplikasi IIS 8.0 memberi pengembang dan administrator kemampuan untuk mengembalikan konten statis ke browser saat IIS menginisialisasi aplikasi "dingin". Menyajikan konten statis segera ke browser memberi pelanggan pengalaman pengguna yang lebih baik. Alih-alih aplikasi cold-start yang menghasilkan halaman browser kosong atau ikon tunggu berputar, fitur Inisialisasi Aplikasi dapat digunakan untuk menyajikan konten statis yang relevan sementara aplikasi yang mendasar menyelesaikan pemrosesan inisialisasi yang mahal.

Proses inisialisasi dapat terjadi secara otomatis setiap kali server web dibawa online atau didaur ulang. Untuk skenario di mana administrator server tidak ingin menginisialisasi aplikasi dengan serakah, proses inisialisasi dapat dipicu sesuai permintaan ketika permintaan pertama tiba di aplikasi "dingin".

Untuk inisialisasi aplikasi global dan lokal, modul Penulisan Ulang Url dapat diintegrasikan untuk memberikan aturan inisialisasi yang lebih kaya dan lebih kompleks. Menggunakan aturan Penulisan Ulang Url yang terintegrasi dengan fitur Inisialisasi Aplikasi dimungkinkan untuk melayani berbagai jenis konten statis yang dibuat sebelumnya untuk Url dan jalur virtual yang berbeda sementara IIS terus memulai aplikasi di latar belakang.

Lampiran - Menyiapkan Sampel Aplikasi ASP.NET

Catatan - langkah-langkah berikut mengasumsikan server Anda sudah menginstal IIS 8.0 dan ASP.NET 4.5 diaktifkan untuk digunakan di IIS 8.0.

Membuka kemasan aplikasi sampel

Contoh aplikasi ASP.NET terkandung dalam file .zip berikut:

Unzip file ke folder wwwroot di server web Anda. Misalnya jika server web Anda menginstal "Situs Web Default" pada drive C:\, unzip konten file ke c:\inetpub\wwwroot\appinit.

Membuat aplikasi di IIS 8.0

Setelah membuka zip sampel "appinit" ke sistem file, Anda perlu mengonfigurasi folder sebagai aplikasi ASP.NET di IIS 8.0. Cuplikan layar di bawah ini menunjukkan aplikasi sampel appinit yang dikonfigurasi sebagai aplikasi di IIS 8.0. Perhatikan juga bahwa aplikasi ditetapkan ke kumpulan aplikasi ".NET v4.5".

Cuplikan layar menu Pengaturan Tingkat Lanjut I S Manager. Contoh appication dan kumpulan aplikasi disorot.

Menginstal Modul Penulisan Ulang Url

Aplikasi sampel menggunakan modul Penulisan Ulang Url untuk integrasi tingkat lanjut dengan fitur Inisialisasi Aplikasi. Anda perlu menginstal modul Penulisan Ulang Url di server Anda; dapat diunduh dari: https://www.iis.net/downloads/microsoft/url-rewrite.

Mengonfigurasi Modul Penulisan Ulang Url

Setelah modul Penulisan Ulang Url diinstal di server web Anda, Anda perlu memodifikasi file applicationHost.config IIS untuk memungkinkan penggunaan variabel server SKIP_MANAGED_MODULES yang didukung oleh fitur Inisialisasi Aplikasi.

Buka file applicationHost.config di seluruh komputer di editor teks seperti notepad. Misalnya jika Anda menginstal sistem operasi pada drive C:\, file applicationHost.config terletak di C:\Windows\System32\inetsrv\config.

Gulir ke bawah file dan temukan bagian keamanan. Bagian ini dimulai dengan elemen Xml: <keamanan>.

Ketik elemen Xml berikut ini sebelum<elemen keamanan> :

<rewrite>
  <allowedServerVariables>
    <add name="SKIP_MANAGED_MODULES" />
  </allowedServerVariables>
</rewrite>

Simpan perubahan ke file applicationHost.config.