Bagikan melalui


Menambahkan pengatur <>

Gambaran Umum

Elemen <add><handlers> koleksi menambahkan handler ke daftar handler HTTP untuk Internet Information Services (IIS) 7.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <add> tidak dimodifikasi di IIS 10.0.
IIS 8.5 Elemen <add> tidak dimodifikasi di IIS 8.5.
IIS 8.0 Elemen <add> tidak dimodifikasi di IIS 8.0.
IIS 7.5 Elemen <add> tidak dimodifikasi dalam IIS 7.5.
IIS 7.0 Elemen <add><handlers> koleksi diperkenalkan di IIS 7.0.
IIS 6.0 T/A

Siapkan

Elemen <add><handlers> koleksi disertakan dalam penginstalan default IIS 7.

Bagaimana Caranya

Cara membuat pemetaan handler untuk handler ASP.NET dalam aplikasi IIS 7 yang berjalan dalam mode Terintegrasi

  1. Buka Manajer Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , klik koneksi server yang ingin Anda tambahkan modul aslinya.

  3. Di panel Beranda , klik dua kali Pemetaan Handler.
    Cuplikan layar Manajer I I S yang menampilkan halaman Beranda Situs Web Default. Ikon Pemetaan Handler disorot.

  4. Pada panel Tindakan , klik Tambahkan Handler Terkelola...

  5. Dalam kotak dialog Tambahkan Handler Terkelola , tentukan hal berikut ini:

    • Jalur Permintaan. Nama file atau ekstensi nama file yang akan dipetakan.

    • Jenis. Nama jenis (kelas) handler terkelola. Jika handler didefinisikan dalam folder app_code atau bin aplikasi, nama jenisnya akan muncul di daftar drop-down.

    • Nama. Nama deskriptif.

      Cuplikan layar kotak dialog Tambahkan Handler Terkelola.

  6. Klik OK untuk menutup kotak dialog Tambahkan Handler Terkelola .

Cara membuat pemetaan handler FastCGI

  1. Buka Manajer Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , klik nama server yang ingin Anda konfigurasikan pemetaan handler FastCGI-nya.

  3. Di panel Beranda , klik dua kali Pemetaan Handler.
    Cuplikan layar jendela I I S Manager yang menampilkan halaman beranda Server. Ikon untuk Pemetaan Handler disorot.

  4. Di panel Tindakan , klik Tambahkan Pemetaan Modul...

    Catatan

    Agar langkah berikutnya berfungsi, Anda harus sudah menginstal biner yang akan menjalankan jalur file atau ekstensi nama file yang Anda tentukan. Contoh ini menggunakan implementasi PHP yang tersedia dari situs Web Microsoft.

  5. Ketik ekstensi nama file, seperti.php di kotak Jalur permintaan , klik FastCGIModule di daftar drop-down Modul, ketik jalur ke mesin skrip (dalam contoh ini, PHP-CGI.exe) dalam kotak Dapat Dieksekusi , lalu klik OK.
    Cuplikan layar kotak dialog Tambahkan Pemetaan Modul.

  6. Pada kotak dialog Tambahkan Pemetaan Modul , klik Ya.
    Cuplikan layar kotak dialog Tambahkan informasi Pemetaan Modul.

Konfigurasi

Atribut

Atribut Deskripsi
allowPathInfo Atribut Boolean opsional.

Menentukan apakah handler memproses informasi jalur lengkap dalam URI, seperti contoso/marketing/imageGallery.aspx. Jika nilainya benar, handler memproses jalur lengkap, contoso/marketing/imageGallery. Jika nilainya false, handler hanya memproses bagian terakhir dari jalur, /imageGallery.

Nilai defaultnya adalah false.
modules Atribut string opsional.

Menentukan nama modul atau modul yang ingin Anda petakan nama file atau nama file dengan ekstensi. Jika Anda menentukan lebih dari satu nilai, pisahkan nilai dengan koma (,).

Nilai defaultnya adalah ManagedPipelineHandler.
name Atribut string yang diperlukan.

Menentukan nama unik pemetaan handler.
path Atribut string yang diperlukan.

Menentukan nama file atau ekstensi nama file tempat pemetaan handler diterapkan.
preCondition Atribut string opsional.

Menentukan kondisi di mana handler akan berjalan.

Atribut preCondition dapat berupa satu atau beberapa nilai yang mungkin berikut ini. Jika Anda menentukan lebih dari satu nilai, pisahkan nilai dengan koma (,).
Nilai Deskripsi
bitness32 Tentukan nilai bitness32 ketika handler adalah file .dll 32-bit, dan IIS harus memuat handler hanya untuk proses pekerja yang berjalan dalam mode WOW64 (simulasi 32-bit) pada sistem operasi 64-bit.
bitness64 Tentukan nilai bitness64 ketika handler adalah file .dll 64-bit, dan IIS harus memuat handler hanya untuk proses pekerja yang berjalan dalam mode 64-bit.
integratedMode Tentukan nilai integratedMode ketika handler harus merespons hanya permintaan di kumpulan aplikasi yang dikonfigurasi untuk menggunakan alur pemrosesan permintaan terintegrasi.
ISAPIMode Tentukan nilai ISAPIMode ketika handler harus merespons hanya permintaan di kumpulan aplikasi yang dikonfigurasi untuk menggunakan mode Klasik.
runtimeVersionv1.1 Tentukan nilai runtimeVersionv1.1 ketika handler harus merespons hanya permintaan di kumpulan aplikasi yang dikonfigurasi untuk menggunakan .NET Framework versi 1.1.
runtimeVersionv2.0 Tentukan nilai runtimeVersionv2.0 saat handler harus merespons hanya permintaan di kumpulan aplikasi yang dikonfigurasi untuk menggunakan .NET Framework versi 2.0.
requireAccess Atribut enum opsional.

Menentukan jenis akses yang diperlukan handler ke sumber daya.

Atribut requireAccess dapat berupa satu atau beberapa nilai yang mungkin berikut ini. Jika Anda menentukan lebih dari satu nilai, pisahkan nilai dengan koma (,). Nilai defaultnya adalah Script.
Nilai Deskripsi
Menjalankan Menentukan bahwa handler memerlukan hak untuk menjalankan executable.

Nilai numerik adalah 4.
Tidak ada Menentukan bahwa handler tidak memiliki persyaratan akses.

Nilai numerik adalah 0.
Baca Menentukan bahwa handler memerlukan izin baca.

Nilai numerik adalah 1.
Skrip Menentukan bahwa handler memerlukan hak untuk menjalankan skrip.

Nilai numerik adalah 3.
Tulis Menentukan bahwa handler memerlukan izin tulis.

Nilai numerik adalah 2.
resourceType Atribut string opsional.

Menentukan jenis sumber daya yang diterapkan pemetaan handler.

Atribut resourceType dapat menjadi salah satu dari kemungkinan nilai berikut. Nilai defaultnya adalah Unspecified.
Nilai Deskripsi
Directory Menentukan bahwa pemetaan handler berlaku untuk permintaan hanya untuk folder fisik pada disk.

Nilai numerik adalah 1.
Either Menentukan bahwa pemetaan handler berlaku untuk permintaan file fisik atau folder pada disk.

Nilai numerik adalah 2.
File Menentukan bahwa pemetaan handler berlaku untuk permintaan hanya untuk file fisik pada disk.

Nilai numerik adalah 0.
Unspecified Menentukan bahwa jenis pemetaan tidak ditentukan. Pemetaan handler berlaku untuk permintaan terlepas dari apakah permintaan memetakan ke file fisik atau folder pada disk. Gunakan pengaturan ini saat Anda memetakan handler ke nama file atau ekstensi nama file yang tidak ada pada disk, seperti MyHandler.axd.

Nilai numerik adalah 3.
responseBufferLimit Atribut uint opsional.

Menentukan ukuran maksimum, dalam byte, dari buffer respons untuk penangan permintaan.

Nilai defaultnya adalah 4194304 byte.
scriptProcessor Atribut string opsional.

Menentukan jalur fisik file .dll ekstensi ISAPI atau file .exe Antarmuka Gateway Umum (CGI) yang memproses permintaan.

Atribut scriptProcessor hanya diperlukan untuk pemetaan penangan peta skrip. Saat memetakan handler ke ekstensi ISAPI, Anda harus menentukan ISAPIModule untuk atribut modul. Saat memetakan handler ke file CGI, Anda harus menentukan CGIModule untuk atribut modul.
type Atribut string opsional.

Menentukan jalur namespace dari handler terkelola. Atribut jenis hanya diperlukan untuk handler terkelola.
verb Atribut string yang diperlukan.

Menentukan kata kerja HTTP tempat pemetaan handler diterapkan.

Elemen Anak

Tidak ada.

Sampel Konfigurasi

Contoh berikut berisi dua <add> elemen yang menentukan pemetaan handler. Elemen pertama <add> mendefinisikan handler SampleHandler untuk aplikasi Web yang berjalan dalam mode Terintegrasi IIS 7. Jika Anda menambahkan rakitan handler ke direktori app_code untuk aplikasi Web, Anda tidak perlu menyertakan nama rakitan dalam nilai untuk atribut jenis . Elemen kedua <add> mendefinisikan pemetaan untuk permintaan PHP yang menggunakan modul FastCGI.

<handlers>
   <add name="SampleHandler" verb="*" 
      path="SampleHandler.new" 
      type="SampleHandler, SampleHandlerAssembly" 
      resourceType="Unspecified" />
   <add name="PHP-FastCGI" verb="*" 
      path="*.php" 
      modules="FastCgiModule"
      scriptProcessor="c:\php\php-cgi.exe" 
      resourceType="Either" />
</handlers>

Kode Sampel

Contoh berikut menambahkan pemetaan FastCGI untuk modul PHP, lalu menambahkan handler di situs Web Contoso yang akan memproses permintaan PHP.

AppCmd.exe

appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='c:\php\php-cgi.exe']" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='c:\php\php-cgi.exe',resourceType='Either']"

Catatan

Contoh kedua ini menunjukkan cara menambahkan pemetaan handler ASP.NET baru bernama SampleHandler.new untuk URL tertentu ke aplikasi Web.

appcmd.exe set config /section:system.webServer/handlers /+[name=SampleHandler',path='SampleHandler.new',verb='*',type='SampleHandler']

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration appHostConfig = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection fastCgiSection = appHostConfig.GetSection("system.webServer/fastCgi");
         ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
         ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
         applicationElement["fullPath"] = @"c:\php\php-cgi.exe";
         fastCgiCollection.Add(applicationElement);

         Configuration webConfig = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection handlersSection = webConfig.GetSection("system.webServer/handlers");
         ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
         ConfigurationElement addElement = handlersCollection.CreateElement("add");
         addElement["name"] = @"PHP-FastCGI";
         addElement["path"] = @"*.php";
         addElement["verb"] = @"GET,HEAD,POST";
         addElement["modules"] = @"FastCgiModule";
         addElement["scriptProcessor"] = @"c:\php\php-cgi.exe";
         addElement["resourceType"] = @"Either";
         handlersCollection.AddAt(0, addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim appHostConfig As Configuration = serverManager.GetApplicationHostConfiguration
      Dim fastCgiSection As ConfigurationSection = appHostConfig.GetSection("system.webServer/fastCgi")
      Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
      Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
      applicationElement("fullPath") = "c:\php\php-cgi.exe"
      fastCgiCollection.Add(applicationElement)

      Dim webConfig As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim handlersSection As ConfigurationSection = webConfig.GetSection("system.webServer/handlers")
      Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
      Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
      addElement("name") = "PHP-FastCGI"
      addElement("path") = "*.php"
      addElement("verb") = "GET,HEAD,POST"
      addElement("modules") = "FastCgiModule"
      addElement("scriptProcessor") = "c:\php\php-cgi.exe"
      addElement("resourceType") = "Either"
      handlersCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement("application");
applicationElement.Properties.Item("fullPath").Value = "c:\\php\\php-cgi.exe";
fastCgiCollection.AddElement(applicationElement);
adminManager.CommitChanges();

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso");
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "PHP-FastCGI";
addElement.Properties.Item("path").Value = "*.php";
addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
addElement.Properties.Item("modules").Value = "FastCgiModule";
addElement.Properties.Item("scriptProcessor").Value = "c:\\php\\php-cgi.exe";
addElement.Properties.Item("resourceType").Value = "Either";
handlersCollection.AddElement(addElement, 0);
adminManager.CommitChanges();

Vbscript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement("application")
applicationElement.Properties.Item("fullPath").Value = "c:\php\php-cgi.exe"
fastCgiCollection.AddElement applicationElement
adminManager.CommitChanges()

adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso")
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "PHP-FastCGI"
addElement.Properties.Item("path").Value = "*.php"
addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
addElement.Properties.Item("modules").Value = "FastCgiModule"
addElement.Properties.Item("scriptProcessor").Value = "c:\php\php-cgi.exe"
addElement.Properties.Item("resourceType").Value = "Either"
handlersCollection.AddElement addElement, 0
adminManager.CommitChanges()