Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Tobin Titus
Pengantar
Di IIS 6.0, administrator memiliki jaring pengaman yang memungkinkan mereka untuk dengan mudah memastikan apa yang berubah dalam konfigurasi IIS. Ini diimplementasikan sebagai file riwayat yang dapat dipulihkan dengan mudah, dan berfungsi sebagai riwayat peristiwa yang dapat digunakan yang terjadi pada konfigurasi. Jika terjadi kesalahan selama penginstalan aplikasi, peningkatan, atau perubahan individual pada metabase, pengguna dapat memulihkan ke status kerja.
Dengan IIS 7.0 ke atas, tim IIS menginginkan "jaring pengaman" yang sama tetapi kami tidak dapat menggunakan fitur riwayat IIS 6.0 karena perubahan arsitektur konfigurasi. Di IIS 7.0 ke atas, kami menyelesaikan masalah ini dengan membuat layanan yang memantau perubahan pada file konfigurasi master, ApplicationHost.config, dan secara berkala membuat rekam jepret untuk diambil nanti jika perlu.
Fitur ini disebut Riwayat Konfigurasi IIS. Panduan ini menggambarkan cara kerja fitur ini.
Tugas 1: Meninjau Pengaturan Konfigurasi Default configHistory
Dalam tugas ini, Anda meninjau opsi konfigurasi yang tersedia setelah penginstalan IIS default. Dalam tugas selanjutnya, Anda kemudian memodifikasi beberapa pengaturan ini untuk menunjukkan fleksibilitas fitur agar sesuai dengan lingkungan.
Langkah 1: Buka applicationHost.config
- Klik Mulai, klik Jalankan, dan dalam kotak dialog Buka: , ketik notepad dan Klik OK.
Gambar 1: Membuka Konfigurasi dengan Notepad - Klik File, lalu Buka, dan dalam kotak dialog Nama file: , ketik
%windir%\system32\inetsrv\config\applicationHost.config
. Klik Terbuka.
Gambar 2: Jalur ApplicationHost.config - Untuk menemukan bagian configHistory, klik CTRL-F dan masukkan configHistory dan Klik Temukan Berikutnya.
Setelah membuka file master, Anda akan melihat entri seperti berikut ini untuk configHistory:
<sectionGroup name"system.applicationHost>
<section name="applictionPools" allowDefinition="AppHostOnly" overrideMode="Deny" />
<section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
</sectionGroup>
Perhatikan bahwa tidak ada pengaturan lebih lanjut untuk fitur ini di applicationHost.config. Ini adalah perilaku yang diharapkan karena secara default, IIS menggunakan nilai yang disimpan dalam skema IIS. Untuk melihat pengaturan default, buka file skema IIS (IIS_schema.xml.)
Langkah 2: Temukan Default configHistory di Skema IIS
Klik Mulai, klik Jalankan, dan dalam kotak dialog Buka: , ketik notepad dan Klik OK.
Klik File, lalu Buka, dan dalam kotak dialog Nama file: , ketik
%windir%\system32\inetsrv\config\schema\iis\_schema.xml
.
Gambar 3: Skema IIS- Untuk menemukan bagian configHistory, klik CTRL-F dan masukkan configHistory.Di Windows Server® 2008, Anda akan melihat hal berikut:
Gambar 4: Definisi Skema configHistory
Ada empat pengaturan yang dapat dikonfigurasi (atribut) untuk bagian configHistory:
Atribut Pengaturan default Definisi diaktifkan True Nilai ini menunjukkan apakah riwayat konfigurasi diaktifkan atau dinonaktifkan jalur %systemdrive%\inetpub\history
Jalur tempat direktori riwayat dibuat dan disimpan maxHistories 10 Jumlah maksimum direktori yang dipertahankan Periode 00:02:00 Waktu antara setiap pemeriksaan yang dibuat untuk perubahan
Ringkasan
Meskipun relatif sederhana, jangan mengabaikan tugas ini. Ini menawarkan wawasan langsung tentang atribut konfigurasi yang tersedia untuk bagian configHistory. Anda kemudian mengubah pengaturan ini sebagai demonstrasi fleksibilitas fitur berdasarkan lingkungan.
Tugas 2: Memvalidasi Fungsionalitas configHistory Berfungsi Dengan Baik
Tujuan dari tugas ini adalah untuk melihat configHistory beraksi. Selain itu, bagi administrator berpengalaman yang memahami riwayat metabase IIS 6.0, tugas ini membantu dalam mempelajari perbedaan antara kedua fitur tersebut.
Riwayat Metabase berbasis file, bukan berbasis direktori, seperti riwayat konfigurasi IIS 7.0 ke atas. Misalnya, semua cadangan di IIS 6.0 disimpan di lokasi yang sama yang tidak dapat disesuaikan. Di IIS 7.0 ke atas, setiap salinan unik disimpan di direktorinya sendiri pada waktu pembuatan. Dalam tugas ini, Anda membuat beberapa perubahan pada file konfigurasi IIS menggunakan IIS Manager dan meninjau hasil perubahan ini.
Langkah 1: Membuat Situs Web
Klik Mulai, Jalankan, dan ketik Inetmgr dan Klik OK.
Gambar 5: Membuka Manajer IIS- Klik dua kali nama server Anda, misalnya IIs7Server, untuk memperluas pohon navigasi.Klik kanan server, dan pilih Tambahkan Situs Web.
Gambar 6: Tambahkan Situs WebDi panduan Tambahkan Situs Web , masukkan informasi untuk membuat Situs Web baru. Contohnya:
Gambar 7: Panduan Tambahkan Situs WebKlik OK.
Sekarang Anda melihat Situs Web baru yang dibuat di Manajer IIS Anda, seperti dalam hal berikut:
Gambar 8: Beranda Manajer IISSekarang, kami memvalidasi bahwa pencadangan perubahan konfigurasi yang berhasil telah ditangkap oleh Layanan Pembantu Host Aplikasi.
Langkah 2: Temukan File Riwayat untuk applicationHost.config
Catatan
Kemungkinan salinan Anda tidak akan ditampilkan segera setelah mengikuti langkah-langkah ini. Ini didasarkan pada nilai default dua menit. Jika Anda menemukan bahwa tidak ada salinan yang dibuat, periksa untuk memastikan bahwa Anda telah menunggu dua menit.
Klik Mulai, Jalankan, dan buka
%systemdrive%\inetpub\history
.
Gambar 9: Jalur Default Riwayat KonfigurasiKlik ganda folder riwayat dan temukan perubahan terbaru.
Gambar 10: File Riwayat ApplicationHost.configCatatan
Jika Anda gagal menemukan salinan Anda di folder riwayat, verifikasi bahwa Layanan Pembantu Host Aplikasi sedang berjalan. Periksa Pemampil Peristiwa Anda untuk setiap potensi kesalahan yang dilemparkan oleh IIS-AppHstSvc.
Gambar 11: Layanan Pembantu Host Aplikasi
Ringkasan
Dalam tugas ini, kami mengambil beberapa langkah untuk memahami cara kerja fitur riwayat konfigurasi IIS. Pertama, kami membuat perubahan pada ApplicationHost.config, memicu Layanan Pembantu Host Aplikasi untuk membuat salinan pada periode terjadwal berikutnya. Selanjutnya, kami menemukan salinan dan memvalidasi bahwa kami berhasil membuat salinan di %systemdrive%\inetpub\history
.
Tugas 3: Memodifikasi Jumlah Direktori (maxHistories) dipertahankan dan Atribut Periode
Tujuan dari tugas ini adalah untuk berhasil memodifikasi jumlah file riwayat yang dipertahankan oleh IIS 7.0 ke atas. Karena default disimpan dalam skema, kita harus membuat bagian configHistory di applicationHost.config dan menambahkan atribut dan nilai yang sesuai untuk atribut maxHistories dan periode.
Dalam tugas ini, gunakan Notepad untuk memodifikasi atribut ini untuk menunjukkan fleksibilitas dan kesederhanaan pengeditan ApplicationHost.config.
Langkah 1: Buka applicationHost.config
- Klik Mulai, klik Jalankan, dan dalam kotak dialog Buka: , ketik notepad dan Klik OK.
- Klik File, lalu Buka, dan dalam kotak dialog Nama file: , ketik
%windir%\system32\inetsrv\config\applicationHost.config
dan Klik Buka.
Langkah selanjutnya adalah menambahkan bagian konfigurasi, lalu menambahkan atribut dengan nilai.
Langkah 2: Tambahkan Bagian configHistory dan Tambahkan maxHistory
Untuk menemukan bagian configHistory, klik CTRL-F dan masukkan system.applicationHost.
Gambar 12: Menemukan system.applicationHost Section GroupSekarang setelah Anda berada di bagian yang tepat, tambahkan atribut dan nilai yang benar untuk maxHistory. Ketik teks berikut ke dalam grup bagian system.applicationHost Anda:
<configHistory maxHistories="15" />
Catatan
Untuk menghemat waktu di langkah Anda berikutnya, biarkan notepad terbuka setelah menyelesaikan tugas ini.
Terakhir, validasi bahwa perubahan telah terjadi. Kita tahu bahwa secara default kita seharusnya hanya melihat 10 direktori pada satu waktu seperti yang didefinisikan oleh skema IIS.
Setelah kita meningkatkan nilai maksimum yang disimpan oleh IIS, kita memerlukan metode mudah untuk memicu banyak direktori untuk dibuat. Untuk mensimulasikan ini, kami menurunkan nilai default untuk atribut periode ke default minimum 10 detik. Ini meningkatkan interval untuk memeriksa perubahan dan karenanya berpotensi membuat lebih banyak salinan file di lingkungan dinamis.
Langkah 3: Atur Atribut Periode untuk configHistory
- Dengan menggunakan sesi sebelumnya, tambahkan atribut periode dengan menambahkan period="00:00:10".
- Klik File, Simpan untuk menerapkan perubahan.
Setelah selesai, bagian configHistory terlihat seperti berikut ini:
<configHistory maxHistories="15" period="00:00:10" />
Langkah 4: Jalankan Skrip untuk Menyebabkan Pembuatan Riwayat
Buka Notepad. Salin dan tempel yang berikut ini:
Option Explicit ' Global objects, variables Dim objShell, argObj, oExec Dim strDirectory, strFile, strCmd, strFullCmd, stdIn, i set objShell = CreateObject("Wscript.Shell") strDirectory = "%windir%\system32\inetsrv\" strFile = "AppCmd.exe" set ArgObj = Wscript.Arguments ' No args (default case), hard-code StdIn If ArgObj.Count = 0 Then stdIn = 17 i = 0 'initilize i For i = 0 to stdIn ' Call Select Case to change Statement strCmd = getStrCmd(i) strFullCmd = strDirectory & strFile & " " & strCmd Set oExec = objShell.Exec(strFullCmd) Do While oExec.Status = 0 WScript.Sleep 100 Loop If oExec.ExitCode <> 0 Then ' Something wrong with the IIS Installation ' Is AppCmd installed on the machine? \inetsrv directory? msgBox "Executing AppCmd Command Failed. Please Try Again!" wscript.Quit End if WScript.Sleep(2 * 1000) Next ' Handle the case where we passed arguments to ' the script Else stdIn = ArgObj(0) ' Same code as above but handle arguments being passed. i = 0 ' initialize i For i = 0 to stdIn ' Call Select Case to change Statement strCmd = getStrCmd(i) strFullCmd = strDirectory & strFile & " " & strCmd Set oExec = objShell.Exec(strFullCmd) Do While oExec.Status = 0 WScript.Sleep 100 Loop ' Validate that AppCmd calls succeeded by checking Error code If oExec.ExitCode <> 0 Then ' Something wrong with the IIS Installation ' Is AppCmd installed on the machine? \inetsrv directory? msgBox "Executing AppCmd Command Failed. Please Try Again!" wscript.Quit End if ' Go to sleep for x period (default: 20) WScript.Sleep(20 * 1000) Next ' End the StdIn Input Tree End if ' AppCMD Command Function Function getStrCmd(MyIndex) Select Case (MyIndex) Case 0 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:false" Case 1 ' set Default Document getStrCmd = "set config /section:defaultDocument /enabled:true" Case 2 'set httpRedirect getStrCmd = "set config /section:httpRedirect /enabled:true" Case 3 ' set Client Certificate Mapping Auth getStrCmd = "set config /section:security/authentication/clientCertificateMappingAuthentication /enabled:true" Case 4 ' set Directory Browse getStrCmd = "set config /section:directoryBrowse /enabled:true" Case 5 ' set httpRedirect getStrCmd = "set config /section:httpRedirect /enabled:false" Case 6 ' set anonymousAuth getStrCmd = "set config /section:security/authentication/anonymousAuthentication /enabled:false" Case 7 ' set basicAuth getStrCmd = "set config /section:security/authentication/basicAuthentication /enabled:true" Case 8 ' set digestAuth getStrCmd = "set config /section:security/authentication/digestAuthentication /enabled:true" Case 9 ' set client cert mapping auth getStrCmd = "set config /section:security/authentication/clientCertificateMappingAuthentication /enabled:false" Case 10 ' set windows auth getStrCmd = "set config /section:security/authentication/windowsAuthentication /enabled:true" Case 11 ' server runtime getStrCmd = "set config /section:serverRuntime /enabled:true" Case 12 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:false" Case 13 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:true" Case 14 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:true" Case 15 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:true" Case 16 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:true" Case 17 ' set Server Runtime getStrCmd = "set config /section:serverRuntime /enabled:true" End select End Function
Simpan ini sebagai ConfigHst.vbs (pastikan Anda memilih Semua File untuk menghindari penyimpanan sebagai file teks).
Gambar 13: Menyimpan Skrip VBSJalankan file VBS ini dengan membuka prompt perintah, menemukan lokasi file tempat disimpan, dan ketik yang berikut ini:
cscript //nologo configHst.vbs
Skrip ini melakukan panggilan untuk memodifikasi konfigurasi IIS setiap 15 detik. Ini adalah waktu yang cukup bagi riwayat konfigurasi untuk memeriksa perubahan dan membuat cadangan. Setelah menyelesaikan ini, kita melihat banyak cadangan konfigurasi di direktori cadangan kita.
Selanjutnya, buka jalur default untuk configHistory dengan mengklik Mulai, lalu Jalankan, dan ketik
%systemdrive%\inetpub\history
Anda melihat folder cadangan seperti CFGHISTORY_0000001, CFGHISTORY_0000002, dan sebagainya.
Setelah menjalankan skrip ini, perhatikan bagaimana fitur ini mendorong yang terlama saat mencapai maksimum (yaitu maxHistories.) Dalam kasus kami, setelah mencapai CFGHISTORY_0000000015, item terlama dihapus sebelum membuat direktori keenam belas.
Gambar 14: Direktori Riwayat dengan nilai maksistori 15
Ringkasan
Dalam tugas ini, kami berhasil memodifikasi jumlah cadangan yang disimpan oleh IIS. Pengaturan default 10 cukup untuk banyak; namun, untuk lingkungan dinamis seperti server hosting bersama di mana pelanggan mendaftar untuk situs secara acak dan sering, adalah praktik yang baik untuk memiliki riwayat yang lebih menyeluruh.
Dalam tugas ini, kami memodifikasi atribut maxHistories dan titik untuk bagian configHistory dan kemudian menghasilkan beberapa perubahan yang akan menunjukkan bahwa kami menyimpan lebih dari 10 (default) salinan.
Tugas 4: Mengubah Jalur Default untuk Menyimpan Cadangan configHistory
Jumlah direktori riwayat dan file terkait yang disimpan oleh IIS dapat dikonfigurasi agar fleksibel tergantung pada lingkungan. Untuk banyak kasus, menyimpan file riwayat pada jalur sistem (yaitu %systemdrive%inetpub\history
) tidak diinginkan. Tidak seperti riwayat di IIS 6.0, yang tidak memiliki mekanisme yang dapat dikonfigurasi untuk riwayat konfigurasi, riwayat konfigurasi IIS 7.0 ke atas sekarang menawarkan kemampuan untuk mengubah di mana IIS menyimpan direktori riwayat dan file.
Kami menggunakan dalam tugas ini metode untuk memodifikasi konfigurasi--dalam hal ini, antarmuka baris perintah IIS. Tujuan dari tugas ini tidak hanya untuk mempelajari tentang mengubah jalur direktori riwayat konfigurasi, tetapi juga untuk membiasakan diri dengan AppCmd.exe, antarmuka baris perintah IIS ke konfigurasi dan data runtime.
Langkah 1: Buat Direktori untuk Riwayat
Klik Mulai, pilih Jalankan, lalu ketik CMD dan Klik OK.
Pada prompt perintah, buat direktori Anda dengan mengetik berikut ini:
md MyWebHistory
Langkah ini diperlukan karena tidak ada direktori yang dibuat secara otomatis jika tidak ada. Jika Anda gagal melakukan langkah ini, Anda akan melihat hal berikut:
Gambar 15: Pesan Peristiwa jika Izin Tidak Memadai ke Jalur Riwayat
Langkah 2: Temukan AppCmd.exe
Klik Mulai, pilih Jalankan, lalu ketik CMD dan Klik OK.
Pada prompt perintah, ubah direktori dengan mengetik berikut ini:
Cd %windir%\system32\inetsrv
Untuk membiasakan diri dengan sintaks AppCmd, ketik yang berikut ini:
Appcmd /?
Pada titik ini, ubah nilai untuk atribut jalur menjadi nilai yang lebih sesuai di lingkungan Anda. Dalam hal ini, ubah ke direktori kustom pada partisi sistem – %systemdrive%\MyWebHistory
direktori.
Catatan
Seringkali Anda harus memindahkan data ini ke partisi terpisah, atau lebih baik, ke drive pada pengontrol yang berbeda, seperti D:, dll. Ubah nilai jalur menggunakan AppCmd: -
Langkah 3: Ubah Nilai Jalur untuk configHistory
Untuk membiasakan diri lebih jauh dengan AppCmd.exe, buka perintah dan ketik yang berikut ini:
Appcmd set config –section:?
Perintah ini membantu Anda mempelajari cara meninjau bagian yang saat ini tersedia yang diizinkan untuk pengeditan.
Appcmd list config –section:configHistory –config:*
Perintah ini membantu Anda memahami apa atribut dan nilai yang saat ini ditetapkan pada sistem kami.
Sekarang terbitkan perintah berikut untuk mengubah atribut jalur dari default ke
%systemdrive%inetpub\history
%systemdrive%MyWebHistory
–Appcmd set config -section:configHistory –path:"%systemdrive%MyWebHistory"
Untuk memvalidasi perubahan, ketik berikut ini dan verifikasi bahwa maxHistories dan periode diatur dengan tepat.
<configHistory maxHistories="15" period="00:00:10" path="%systemdrive%\MyWebHistory" />
Anda lihat yang berikut ini:
Gambar 16: Menggunakan AppCmd untuk mencantumkan Konfigurasi
Terakhir, kami akan menghasilkan perubahan pada konfigurasi yang menyebabkan pencadangan dipicu -- perhatikan lokasi baru untuk direktori dan file.
Langkah 4: Jalankan kembali Skrip Sebelumnya
- Jalankan ConfigHst.vbs dengan mengetikkan hal berikut:
cscript //nologo configHst.vbs
Jika Anda memeriksa %systemdrive%\MyWebHistory
, Anda akan melihat beberapa direktori dengan nama folder yang mirip dengan CFGHISTORY_0000001, 2, dan sebagainya.
Ringkasan
Ini adalah praktik standar untuk memindahkan data penting dan volatil dari partisi sistem server (%systemdrive%
secara default) ke partisi atau drive lain. Dalam tugas ini, Anda berhasil mengubah lokasi target untuk direktori riwayat konfigurasi IIS.
Tugas 5: Memulihkan Konfigurasi dari File Cadangan
Tidak berguna untuk memiliki fitur riwayat tanpa menawarkan metode untuk memulihkan konfigurasi yang sebelumnya berfungsi. Tujuan dari tugas ini adalah untuk memanding Anda melalui proses manual untuk memulihkan dari salinan konfigurasi Anda yang dibuat sebelumnya.
Langkah 1: Mencantumkan cadangan yang tersedia
- Klik Mulai, Jalankan, dan ketik CMD dan Klik OK.
- Ubah ke direktori inetsrv menggunakan perintah berikut:
cd %windir%\system32\inetsrv
. - Untuk mendapatkan jalur yang saat ini dikonfigurasi untuk bagian configHistory, ketik yang berikut ini:
appcmd list backups
Perintah ini akan mencantumkan cadangan yang tersedia, termasuk cadangan manual yang dibuat dengan perintah tambahkan cadangan appcmd, serta cadangan yang dibuat oleh layanan riwayat konfigurasi. Anda dapat menggunakan perintah cadangan pemulihan appcmd untuk memulihkan salah satu dari ini, seperti yang ditunjukkan pada langkah berikutnya
Langkah 2: Pulihkan cadangan
Setelah mengikuti instruksi pada langkah di atas untuk mencantumkan cadangan, pilih cadangan yang ingin Anda pulihkan dan pulihkan dengan mengetik berikut ini:
appcmd memulihkan BACKUPNAME
Di mana BACKUPNAME adalah salah satu cadangan yang tercantum di langkah 1, misalnya, CFGHISTORY_0000000016.
Anda juga dapat mencari file konfigurasi secara manual di folder cadangan untuk menentukan cadangan mana yang ingin Anda pulihkan:
Klik Mulai, Jalankan, dan ketik CMD dan Klik OK.
- Ubah ke direktori riwayat menggunakan informasi di Langkah 1, di atas.
- Gunakan perintah findstr Windows untuk menemukan perubahan yang Anda cari. Dalam hal ini, temukan konfigurasi dengan direktoriBrowse diatur ke false.
Findstr /S /I /C:"directoryBrowse enabled=\"false\"" *.config
Ini mencari direktori saat ini dan semua sub-direktori untuk direktori stringBrowse sama dengan false. Ini hanya mengembalikan satu item, misalnya CFGHISTORY_0000000016, yang menunjukkan apa yang akan kami pulihkan.
Ringkasan
Dalam tugas ini, kami menemukan salinan riwayat dan memulihkannya. Tugas ini adalah ilustrasi terpenting dari fitur riwayat konfigurasi, karena menawarkan kemampuan untuk mengembalikan ke konfigurasi yang sebelumnya berfungsi dengan mudah.