Struktur Konfigurasi
File konfigurasi ASP.NET disebut file Web.config, dan dapat muncul di beberapa direktori dalam aplikasi ASP.NET. Hierarki konfigurasi ASP.NET memiliki karakteristik sebagai berikut:
Gunakan file konfigurasi yang berlaku untuk sumber daya di direktori tempat file konfigurasi berada dan semua subdirektorinya.
Memungkinkan Anda menempatkan data konfigurasi di lokasi yang memberikan cakupan yang sesuai (seluruh komputer, semua aplikasi Web, satu aplikasi, atau subdirektori dalam aplikasi itu).
Memungkinkan penggantian pengaturan konfigurasi yang diwarisi dari tingkat yang lebih tinggi dalam hierarki konfigurasi. Juga memungkinkan penguncian pengaturan konfigurasi untuk mencegahnya ditimpa oleh pengaturan konfigurasi tingkat yang lebih rendah.
Atur grup logis pengaturan konfigurasi menjadi beberapa bagian.
Warisan konfigurasi
Semua aplikasi .NET Framework mewarisi pengaturan konfigurasi dasar dan default dari file bernama systemrootMicrosoft .NETFrameworkversionNumberCONFIGMachine.config. File Machine.config digunakan untuk pengaturan konfigurasi tingkat server. Beberapa pengaturan ini tidak dapat ditimpa dalam file konfigurasi yang terletak di hierarki lebih rendah.
Aplikasi klien .NET (konsol dan aplikasi Windows) menggunakan file konfigurasi bernama ApplicationName.config untuk mengganti pengaturan yang diwarisi. Aplikasi ASP.NET menggunakan file konfigurasi bernama Web.config untuk mengesampingkan pengaturan yang diwarisi.
Akar hierarki konfigurasi ASP.NET adalah file yang disebut file root Web.config, yang terletak di direktori yang sama dengan file Machine.config. File root Web.config mewarisi semua pengaturan dari file Machine.config. File root Web.config berisi pengaturan yang berlaku untuk semua aplikasi ASP.NET yang menjalankan versi .NET Framework tertentu. Karena setiap aplikasi ASP.NET mewarisi pengaturan konfigurasi default dari file root Web.config, Anda hanya perlu membuat file Web.config untuk pengaturan yang mengesampingkan pengaturan default.
Warisan dalam Elemen Koleksi
Beberapa elemen konfigurasi adalah koleksi, misalnya elemen namespaces dan elemen customErrors.
Dalam suatu koleksi, pengaturan konfigurasi biasanya ditambahkan ke koleksi melalui elemen tambah anak, dihapus berdasarkan nama kunci melalui elemen hapus anak, atau seluruh koleksi dapat dihapus melalui elemen anak yang jelas. Kecuali jika duplikat diperbolehkan, setelan yang ditambahkan di profil anak akan menggantikan setelan dengan nama kunci yang sama di profil induk.
Perhatikan
bahwa beberapa koleksi yang ada di versi .NET Framework yang lebih lama menggunakan nama elemen yang berbeda untuk menambahkan elemen anak. Misalnya, elemen customErrors menggunakan elemen anak kesalahan untuk menambahkan kesalahan khusus ke koleksi.
Jika permintaan diterima untuk file yang tidak ada di direktori SubDir1, ASP.NET akan mulai mencari hierarki konfigurasi dan mulai dari file Web.config paling lokal (jika ada, mungkin di direktori saat ini atau mungkin di direktori saat ini). mungkin di direktori saat ini). ASP.NET akan mencari elemen kesalahan (Skema Pengaturan ASP.NET) elemen customErrors untuk atribut statusCode yang sama dengan "404". Setelah ASP.NET menemukan kesalahan 404 dalam pengaturan konfigurasi, URL dalam atribut redirect dikembalikan sebagai respons.
Cakupan pengaturan konfigurasi Pengaturan konfigurasi
memiliki cakupan yang berbeda - beberapa memiliki cakupan global dan beberapa hanya valid untuk cakupan aplikasi (file root Web.config atau file Machine.config).
Cakupan bagian konfigurasi ditentukan untuk semua bagian yang terdapat dalam ASP.NET dalam atributallowDefinition dari elemen bagian configSections (Skema Pengaturan Umum) dalam file Machine.config. Misalnya, elemen autentikasi (Skema Pengaturan ASP.NET) memiliki atributallowDefinition dari elemen MachineToApplication. Ini berarti bahwa elemen otentikasi dapat diatur dalam file Machine.config tingkat aplikasi, file root Web.config, dan file Web.config. Jika diatur pada tingkat subdirektori, kesalahan akan terjadi. Jika atributallowDefinition tidak ditentukan untuk suatu bagian, nilai defaultnya adalah Everywhere.
Cakupan pengaturan konfigurasi untuk setiap elemen dalam pengaturan konfigurasi ASP.NET dan pengaturan konfigurasi umum (ASP.NET) tercantum di sebelah Dapat Dikonfigurasi dalam tabel Informasi Elemen.
Tabel berikut mencantumkan setiap level file dalam hierarki konfigurasi, nama setiap file, dan deskripsi karakteristik penting yang diwariskan dari setiap file.
Tingkat Konfigurasi | Nama File | Deskripsi File |
Server | Machine.config | File Machine.config berisi skema ASP.NET untuk semua aplikasi Web di server. File ini berada di tingkat teratas hierarki penggabungan konfigurasi. |
Web.config | root | disimpan di direktori yang sama dengan file Machine.config dan berisi nilai default untuk sebagian besar bagian konfigurasi system.web. Saat dijalankan, file ini digabungkan dari tingkat kedua dari atas dalam hierarki konfigurasi. |
Situs | Web.config | File Web.config untuk situs tertentu berisi pengaturan yang berlaku untuk situs tersebut dan diwariskan ke semua aplikasi ASP.NET dan subdirektori situs tersebut. |
Root Aplikasi ASP.NET | Web.config | File Web.config untuk aplikasi ASP.NET tertentu terletak di direktori root aplikasi. Ini berisi pengaturan. |
Subdirektori Aplikasi ASP.NET | Web.config | File Web.config untuk subdirektori aplikasi berisi pengaturan yang berlaku untuk subdirektori ini dan diwariskan ke bawah ke semua subdirektori di cabangnya. |
Direktori Aplikasi Klien | ApplicationName.config FileApplicationName.config | berisi pengaturan untuk aplikasi klien Windows (bukan aplikasi Web). |
Elemen ProcessModel
Elemen processModel (Skema Pengaturan ASP.NET) mengonfigurasi model pemrosesan yang digunakan untuk server (termasuk semua aplikasi ASP.NET di server). Oleh karena itu, pengaturan processModel hanya dapat ditempatkan di file Machine.config dan tidak dapat ditimpa oleh pengaturan di file Web.config apa pun.
Perubahan pada elemen processModel hanya akan berlaku setelah proses pekerja dimulai ulang, bukan segera setelah perubahan pengaturan seperti elemen konfigurasi lainnya.
Catatan
Ketika ASP.NET berjalan di Internet Information Services (IIS) 6.0 dalam mode isolasi proses pekerja, model proses IIS 6.0 digunakan dan pengaturan di bagian processModel dari file Machine.config diabaikan. Untuk mengonfigurasi identitas proses, round-robin, atau nilai model proses lainnya, gunakan IIS Manager untuk mengonfigurasi proses pekerja IIS aplikasi.
Perhitungan run-time pengaturan konfigurasi
Ketika server menerima permintaan untuk sumber daya Web tertentu, ASP.NET secara hierarki menghitung pengaturan konfigurasi untuk sumber daya tersebut menggunakan semua file konfigurasi yang terletak di jalur direktori virtual dari URL yang diminta. Pengaturan konfigurasi lokal menggantikan pengaturan di file konfigurasi induk.
Pengaturan ini dihitung satu kali dan kemudian di-cache untuk permintaan berikutnya. ASP.NET secara otomatis memonitor perubahan pada file dan menghitung ulang cache ketika file konfigurasi dalam hierarki file berubah. Ketika server menerima permintaan untuk URL tertentu, ASP.NET menggunakan hierarki pengaturan konfigurasi di cache untuk menemukan sumber daya yang diminta.
Kecuali jika atribut restartOnExternalChanges="false" disertakan dalam elemen bagian konfigurasi, atau pengaturan konfigurasi terdapat dalam file terpisah yang ditautkan ke file Web.config menggunakan atribut configSource, aplikasi akan dimulai ulang ketika konfigurasi berubah.
Beberapa sumber daya ASP.NET dikonfigurasi dalam satu file
Menyimpan pengaturan untuk beberapa lokasi dalam satu file Web.config dapat berguna saat mengelola sejumlah besar pengaturan konfigurasi atau mengelola situs web klien dalam pengaturan ISP. Dengan menggunakan atribut path dari elemen lokasi, Anda dapat mengonfigurasi beberapa sumber daya ASP.NET tertentu yang disimpan di subdirektori aplikasi.
Untuk informasi tentang cara menggunakan elemen lokasi, lihat Cara: Mengonfigurasi Direktori Tertentu Menggunakan Pengaturan Lokasi.
Pengaturan di direktori virtual bertentangan dengan pengaturan di direktori fisik
Pengaturan konfigurasi untuk direktori virtual tidak bergantung pada struktur direktori fisik, dan direktori virtual harus diatur dengan hati-hati untuk mencegah masalah konfigurasi. Misalnya, Anda mungkin memiliki file ASP.NET bernama MyResource.aspx dengan struktur direktori fisik berikut.
C:
Subdir1
Subdir2
MyResource.aspx
Selain itu, Anda mungkin memiliki file konfigurasi yang terletak di Subdir1, direktori virtual bernama Vdir1 yang dipetakan ke c:Subdir1, dan direktori virtual bernama Vdir1 yang dipetakan ke c:Subdir1Subdir2 Virtual direktori Vdir2. Jika klien menggunakan URL http://localhost/vdir1/subdir2/MyResource.aspx untuk mengakses sumber daya yang secara fisik terletak di c:Subdir1Subdir2MyResource.aspx, sumber daya mewarisi pengaturan konfigurasi dari Vdir1. Namun, jika klien mengakses sumber daya yang sama menggunakan URL http://localhost/vdir2/MyResource.aspx, sumber daya tidak mewarisi pengaturan dari Vdir1. Membuat direktori virtual dengan cara ini dapat menyebabkan hasil yang tidak diharapkan atau bahkan menyebabkan aplikasi gagal. Disarankan agar Anda tidak membuat sarang direktori virtual, dan jika harus, gunakan hanya satu file Web.config.
Membatasi Warisan ASP.NET
Anda mungkin ingin membatasi warisan pengaturan konfigurasi untuk meningkatkan kinerja aplikasi, menjaga keandalan yang tinggi, dan menyederhanakan administrasi. Fungsionalitas pembatasan dikontrol oleh propertiallowOverride, lockAttributes, lockAllAttributesExcept, lockAllElementsExcept, lockItem, dan lockElements. Lihat msdn untuk informasi lebih lanjut tentang properti ini.