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.
Model Pemrograman HTTP WEB WCF memungkinkan pengembang mengekspos layanan Web Windows Communication Foundation (WCF) melalui permintaan HTTP dasar tanpa memerlukan SOAP. Model Pemrograman HTTP WEB WCF dibangun di atas model ekstensibilitas WCF yang ada. Ini mendefinisikan kelas-kelas berikut:
Model Pemrograman:
Saluran dan Infrastruktur Pengirim:
Kelas Utilitas dan Titik Ekstensibilitas:
AspNetCacheProfileAttribute
AspNetCacheProfileAttribute, ketika diterapkan pada operasi layanan, menunjukkan profil cache output ASP.NET dalam file konfigurasi yang harus digunakan untuk menyimpan respons dari operasi tersebut di ASP.NET Output Cache. Properti ini hanya mengambil satu parameter, nama profil cache yang menentukan pengaturan cache dalam file konfigurasi.
WebGetAttribute
Atribut WebGetAttribute digunakan untuk menandai operasi layanan sebagai yang merespons permintaan HTTP GET. Ini adalah perilaku operasi pasif ( IOperationBehavior metode tidak melakukan apa pun) yang menambahkan metadata ke deskripsi operasi. Penerapan WebGetAttribute tidak akan memiliki efek kecuali perilaku yang mencari metadata ini dalam deskripsi operasi ditambahkan ke kumpulan perilaku layanan, khususnya WebHttpBehavior. Atribut WebGetAttribute mengambil parameter opsional yang ditunjukkan dalam tabel berikut.
| Pengaturan | Deskripsi |
|---|---|
BodyStyle |
Mengontrol apakah akan membungkus permintaan dan respons yang dikirim ke dan diterima dari operasi layanan tempat atribut diterapkan. |
RequestFormat |
Mengontrol bagaimana pesan permintaan diformat. |
ResponseFormat |
Mengontrol bagaimana pesan respons diformat. |
UriTemplate |
Menentukan templat URI yang mengontrol permintaan HTTP yang mana dipetakan ke operasi layanan di mana atribut diterapkan. |
WebHttpBinding
Kelas WebHttpBinding ini menggabungkan dukungan untuk XML, JSON, dan data biner mentah menggunakan WebMessageEncodingBindingElement. Ini terdiri dari HttpsTransportBindingElement, HttpTransportBindingElement dan WebHttpSecurity objek. WebHttpBinding dirancang untuk digunakan bersama dengan WebHttpBehavior.
WebInvokeAtribut
Atribut WebInvokeAttribute ini mirip WebGetAttributedengan , tetapi digunakan untuk menandai operasi layanan sebagai yang merespons permintaan HTTP selain GET. Ini adalah perilaku operasi pasif ( IOperationBehavior metode tidak melakukan apa pun) yang menambahkan metadata ke deskripsi operasi. Penerapan WebInvokeAttribute tidak akan memiliki efek kecuali perilaku yang mencari metadata ini dalam deskripsi operasi ditambahkan ke kumpulan perilaku layanan, khususnya WebHttpBehavior.
Atribut WebInvokeAttribute mengambil parameter opsional yang ditunjukkan dalam tabel berikut.
| Pengaturan | Deskripsi |
|---|---|
BodyStyle |
Mengontrol apakah akan membungkus permintaan dan respons yang dikirim ke dan diterima dari operasi layanan tempat atribut diterapkan. |
Method |
Menentukan metode HTTP tempat operasi layanan dipetakan. |
RequestFormat |
Mengontrol bagaimana pesan permintaan diformat. |
ResponseFormat |
Mengontrol bagaimana pesan respons diformat. |
UriTemplate |
Menentukan templat URI yang mengontrol bagaimana permintaan GET dipetakan ke operasi layanan yang ditempatkan atribut. |
UriTemplate
Kelas ini UriTemplate memungkinkan Anda menentukan sekumpulan URI yang serupa secara struktural. Templat terdiri atas dua bagian, jalur dan kueri. Jalur terdiri dari serangkaian segmen yang dibatasi oleh garis miring (/). Setiap segmen dapat memiliki nilai literal, nilai variabel (ditulis dalam kurung kurawal [{ }], dibatasi untuk mencocokkan konten tepat satu segmen), atau simbol liar (ditulis sebagai tanda bintang [*], yang cocok dengan "sisa dari jalur"), yang harus muncul di akhir jalur. Ekspresi kueri tidak perlu digunakan sama sekali. Jika ada, ini menentukan serangkaian pasangan nama/nilai yang tidak diurutkan. Elemen ekspresi kueri dapat berupa pasangan harfiah (?x=2) atau pasangan variabel (?x={value}). Nilai yang tidak berpasangan tidak diizinkan. UriTemplate digunakan secara internal oleh Model Pemrograman HTTP WEB WCF untuk memetakan URI atau grup URI tertentu ke operasi layanan.
UriTemplateTable
Kelas UriTemplateTable mewakili sekumpulan objek UriTemplate yang terikat dengan objek pilihan pengembang. Ini memungkinkan Anda untuk mencocokkan URI kandidat dengan templat dalam set dan mengambil data yang terkait dengan templat yang sesuai. UriTemplateTable digunakan secara internal oleh Model Pemrograman HTTP WEB WCF untuk memetakan URI atau grup URI tertentu ke operasi layanan.
WebServiceHost
WebServiceHost memperluas ServiceHost untuk mempermudah penyelenggaraan layanan bergaya Web non-SOAP. Jika WebServiceHost tidak menemukan titik akhir dalam deskripsi layanan, titik akhir default secara otomatis dibuat di alamat dasar layanan. Saat membuat titik akhir HTTP default, WebServiceHost juga menonaktifkan halaman Bantuan HTTP dan fungsionalitas GET Bahasa Deskripsi Layanan Web (WSDL) sehingga titik akhir metadata tidak mengganggu titik akhir HTTP default. WebServiceHost juga memastikan bahwa semua endpoint yang menggunakan WebHttpBinding memiliki WebHttpBehavior yang diperlukan terpasang. Terakhir, WebServiceHost secara otomatis mengonfigurasi pengikatan titik akhir untuk bekerja dengan pengaturan keamanan Internet Information Services (IIS) terkait saat digunakan dalam direktori virtual yang aman.
WebServiceHostFactory
Kelas WebServiceHostFactory ini digunakan untuk membuat WebServiceHost secara dinamis ketika layanan dihosting di bawah Internet Information Services (IIS) atau Windows Process Activation Service (WAS). Tidak seperti layanan yang dihosting sendiri di mana aplikasi hosting menginstansiasi WebServiceHost, layanan yang dihosting di bawah IIS atau WAS menggunakan kelas ini untuk membuat WebServiceHost untuk layanan tersebut. Metode CreateServiceHost(Type, Uri[]) ini dipanggil ketika permintaan masuk untuk layanan diterima.
WebHttpBehavior
Kelas WebHttpBehavior ini menyediakan pemformat, pemilih operasi, dan sebagainya yang diperlukan untuk dukungan layanan gaya Web di lapisan Model Layanan. Ini diimplementasikan sebagai perilaku titik akhir (digunakan bersama dengan WebHttpBinding) dan memungkinkan pemformat dan pemilih operasi ditentukan untuk setiap titik akhir, sehingga memungkinkan implementasi layanan yang sama untuk mengekspos titik akhir SOAP dan POX.
Memperluas WebHttpBehavior
WebHttpBehavior dapat diperluas dengan menggunakan sejumlah metode virtual: GetOperationSelector(ServiceEndpoint), , GetReplyClientFormatter(OperationDescription, ServiceEndpoint), GetRequestClientFormatter(OperationDescription, ServiceEndpoint), GetReplyDispatchFormatter(OperationDescription, ServiceEndpoint)dan GetRequestDispatchFormatter(OperationDescription, ServiceEndpoint). Pengembang dapat memperoleh kelas dari WebHttpBehavior dan mengambil alih metode ini untuk menyesuaikan perilaku default.
WebScriptEnablingBehavior adalah contoh perluasan WebHttpBehavior. WebScriptEnablingBehavior memungkinkan titik akhir Windows Communication Foundation (WCF) untuk menerima permintaan HTTP dari klien AJAX ASP.NET berbasis browser. Layanan AJAX Menggunakan HTTP POST adalah contoh penggunaan titik ekstensibilitas ini.
Peringatan
Saat menggunakan WebScriptEnablingBehavior, UriTemplate tidak didukung di dalam WebGetAttribute atau WebInvokeAttribute atribut.
WebHttpDispatchPemilihOperasi
Kelas WebHttpDispatchOperationSelector menggunakan kelas UriTemplate dan UriTemplateTable untuk mendistribusikan panggilan ke operasi layanan.
Kompatibilitas
Model Pemrograman HTTP WEB WCF tidak menggunakan pesan berbasis SOAP dan karenanya tidak mendukung protokol WS-*. Namun, Anda dapat mengekspos kontrak yang sama dengan dua titik akhir yang berbeda: satu menggunakan SOAP dan yang lain tidak menggunakan SOAP. Lihat Cara: Mengekspos Kontrak ke SOAP dan Klien Web misalnya.
Keamanan
Karena Model Pemrograman HTTP WEB WCF tidak mendukung protokol WS-* satu-satunya cara untuk mengamankan layanan Web yang dibangun di WCF WEB HTTP Programming Model adalah dengan mengekspos layanan Anda menggunakan SSL. Untuk informasi selengkapnya tentang menyiapkan SSL dengan IIS 7.0 lihat Cara menerapkan SSL di IIS.