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 Ruslan Yakushev
IIS 7.0 ke atas Failed Request Tracing (FRT) adalah alat yang ampuh untuk memecahkan masalah kegagalan pemrosesan permintaan. FRT dapat digunakan dengan modul penulisan ulang URL untuk melacak bagaimana aturan penulisan ulang diterapkan ke URL permintaan. Panduan ini akan memandu Anda melalui cara menggunakan FRT untuk memecahkan masalah dan men-debug aturan penulisan ulang URL. Untuk informasi selengkapnya tentang Pelacakan Permintaan Gagal, lihat .
Prasyarat
Panduan ini memerlukan prasyarat berikut:
- IIS 7.0 atau lebih tinggi dengan layanan peran ASP.NET dan "Pelacakan" diaktifkan
- Rilis Go Live penulisan ulang URL terinstal
Menyiapkan halaman Web pengujian
Untuk menunjukkan cara kerja modul penulisan ulang URL, kita akan menggunakan halaman ASP.NET pengujian sederhana. Halaman ini membaca variabel server Web dan menghasilkan nilainya di browser.
Salin kode ASP.NET berikut dan masukkan ke %SystemDrive%\inetpub\wwwroot\ dalam folder dalam file bernama article.aspx:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
<h1>URL Rewrite Module Test Page</h1>
<table>
<tr>
<th>Server Variable</th>
<th>Value</th>
</tr>
<tr>
<td>Original URL: </td>
<td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
</tr>
<tr>
<td>Final URL: </td>
<td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td>
</tr>
</table>
</body>
</html>
Setelah menyalin file ini, telusuri http://localhost/article.aspx dan periksa apakah halaman dirender dengan benar di browser.

Mengonfigurasi aturan penulisan ulang
Temukan file web.config dalam %SystemDrive%\inetpub\wwwroot\ folder atau buat file jika tidak ada. Buka file web.config dan tambahkan bagian berikut di dalam <system.webServer> elemen :
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url="." />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="localhost" />
</conditions>
<action type="AbortRequest" />
</rule>
<rule name="Rewrite to article.aspx">
<match url="^article/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" />
</rule>
</rules>
</rewrite>
- Aturan "Gagal permintaan buruk" membatalkan koneksi HTTP jika header host permintaan HTTP tidak cocok dengan "localhost"
- Aturan "Tulis ulang ke article.aspx" menulis ulang url dari format
http://localhost/article/234/some-titleini ke formathttp://localhost/article.aspx?id=234&title=some-titleini .
Periksa apakah aturan dikonfigurasi dengan benar dengan membuka browser dan membuat permintaan ke http://localhost/article/234/some-title. Jika aturan disiapkan dengan benar maka Anda akan melihat respons berikut di browser:

Mengonfigurasi Pelacakan Permintaan Yang Gagal
Sekarang aktifkan pelacakan permintaan yang gagal untuk "Situs Web Default" (lihat artikel ini untuk instruksi langkah demi langkah tentang cara mengaktifkan FRT). Setelah Anda mengaktifkan pelacakan permintaan yang gagal, kami akan membuat aturan FRT untuk melacak peristiwa khusus untuk modul penulisan ulang URL.
Untuk membuat aturan FRT di IIS Manager, ikuti langkah-langkah berikut:
- Klik ikon "Aturan Pelacakan Permintaan Gagal" untuk masuk ke daftar aturan FRT.

- Klik "Tambahkan ..." tindakan untuk memunculkan wizard pembuatan aturan FRT.

- Pada halaman pertama wizard pilih "Semua konten (*)"
- Klik "Berikutnya" dan tentukan kode status sebagai "200-399"

- Klik Berikutnya lalu hapus centang semua penyedia pelacakan kecuali "SERVER WWW" lalu hapus centang semua area penyedia kecuali "Tulis Ulang"

- Klik Selesai untuk menyimpan aturan FRT.
Jika Pelacakan Permintaan Gagal diinstal setelah modul penulisan ulang URL, area "Rewrite" di Penyedia Pelacakan mungkin tidak tersedia. Jika Anda tidak melihat area "Tulis Ulang" yang tercantum di sana, buka Tambahkan/Hapus program lalu jalankan penginstal modul penulisan ulang URL dalam mode perbaikan.
Menganalisis file log Pelacakan Permintaan Gagal
Setelah aturan FRT dibuat, buat permintaan ke http://localhost/article/234/some-title. Ini akan membuat log FRT di %SystemDrive%\inetpub\Logs\FailedReqLogFiles\. Anda dapat membuka log ini dengan menggunakan Internet Explorer, dan log ini akan dirender sebagai dokumen HTML yang dapat dengan mudah dijelajahi. Berikut ini adalah contoh peristiwa tertentu penulisan ulang URL yang dapat ditemukan dalam file log jejak:

Peristiwa ini menunjukkan bagaimana aturan penulisan ulang dievaluasi dan bagaimana URL yang diminta dimodifikasi oleh modul penulisan ulang. Mari kita telusuri beberapa peristiwa untuk lebih memahami logika evaluasi aturan:
URL_REWRITE_START - Kejadian ini menunjukkan dimulainya peristiwa penulisan ulang URL. Properti peristiwa menyediakan informasi berikut:
- String URL input adalah "/article/234/some-title".
- Tidak ada string kueri.
- Scope="Distributed" menunjukkan bahwa aturan bersifat lokal (yaitu, aturan didefinisikan dalam Web.config untuk situs) dibandingkan dengan global (yaitu, didefinisikan pada tingkat server).
RULE_EVALUATION_START - Kejadian ini menunjukkan dimulainya logika evaluasi aturan. Properti peristiwa menyediakan informasi berikut:
- Aturan menggunakan ekspresi reguler untuk sintaks pola (patternSyntax="ECMAScript")
- Aturan berikutnya akan dievaluasi (StopProcessing = "false")
- Aturan didefinisikan pada tingkat akar situs (RelativePath = "/")
PATTERN_MATCH - Kejadian ini menyediakan informasi tentang bagaimana URL dicocokkan dengan pola aturan. Properti peristiwa menyediakan informasi berikut:
- Pola aturan adalah "." (artinya, cocok dengan karakter apa pun)
- Url input berhasil mencocokkan pola
CONDITIONS_EVALUATION_START - Karena URL input cocok dengan pola, evaluasi kondisi dimulai
CONDITION_EVALUATION - Kejadian ini menyediakan informasi berikut:
- Nilai HTTP_HOST adalah "localhost" dan cocok dengan pola
- Karena negasi kondisi ditentukan dalam aturan (yaitu Negated="true") evaluasi kondisi tidak berhasil.
CONDITIONS_EVALUATION_END - Kejadian ini menunjukkan bahwa evaluasi kondisi untuk aturan ini tidak berhasil
RULE_EVALUATION_END - Kejadian ini menunjukkan bahwa aturan tidak mengubah URL (Berhasil="salah"). Ini karena evaluasi kondisi aturan gagal.
RULE_EVALUATION_START - Ini bahkan menunjukkan bahwa string URL diteruskan ke aturan kedua
PATTERN_MATCH - Kejadian ini menyediakan informasi tentang bagaimana URL dicocokkan dengan pola aturan. Properti peristiwa memberi tahu kami bahwa:
- Pola aturannya adalah: "^article/([0-9]+)/([0-9a-z]+)"
- URL input berhasil mencocokkan pola
REWRITE_ACTION - Kejadian ini menunjukkan bahwa evaluasi aturan berhasil dan URL ditulis ulang menjadi "/article.aspx" dengan string kueri "id=234&title=some-title"
Ringkasan
Peristiwa spesifik penulisan ulang URL yang dicatat oleh FRT memberikan informasi yang sangat rinci yang dapat digunakan untuk pemecahan masalah dan penelusuran kesalahan aturan penulisan ulang URL serta hanya untuk memahami bagaimana logika evaluasi aturan diterapkan ke string URL.