Aracılığıyla paylaş


WCF Web HTTP Programlama Nesne Modeli

WCF WEB HTTP Programlama Modeli, geliştiricilerin SOAP gerektirmeden temel HTTP istekleri aracılığıyla Windows Communication Foundation (WCF) Web hizmetlerini kullanıma sunmasını sağlar. WCF WEB HTTP Programlama Modeli, mevcut WCF genişletilebilirlik modelinin üzerine kurulmuştur. Aşağıdaki sınıfları tanımlar:

Programlama Modeli:

Kanallar ve Dağıtıcı Altyapısı:

Yardımcı Program Sınıfları ve Genişletilebilirlik Noktaları:

AspNetCacheProfileAttribute

AspNetCacheProfileAttribute, bir hizmet işlemine uygulandığında, yapılandırma dosyasındaki ASP.NET çıkış önbellek profilini belirtir ve bu profil, ASP.NET Çıktı Önbelleği'nde işlemden gelen yanıtları önbelleğe almak için kullanılır. Bu özellik, yapılandırma dosyasındaki önbellek ayarlarını belirten önbellek profili adı olan tek bir parametre alır.

WebGetAttribute

WebGetAttribute özniteliği, bir hizmet işlemini HTTP GET isteklerine yanıt veren bir işlem olarak işaretlemek için kullanılır. İşlem açıklamasına IOperationBehavior meta veri ekleyen pasif bir işlem davranışıdır (yöntemler hiçbir şey yapmaz). WebGetAttribute uygulamasının hiçbir etkisi olmaz, işlem açıklamasında bu meta verileri arayan bir davranış (özellikle WebHttpBehavior) hizmetin davranış koleksiyonuna eklenmedikçe. özniteliği, WebGetAttribute aşağıdaki tabloda gösterilen isteğe bağlı parametreleri alır.

Parametre Açıklama
BodyStyle Özniteliğin uygulandığı hizmet işlemine gönderilen ve bu işlemden alınan isteklerin ve yanıtların sarmalanıp sarmalmayacağını denetler.
RequestFormat İstek iletilerinin nasıl biçimlendirildiğini denetler.
ResponseFormat Yanıt iletilerinin nasıl biçimlendirildiğini denetler.
UriTemplate Hangi HTTP isteklerinin özniteliğin uygulandığı hizmet işlemine eşlendiğini denetleyebilen URI şablonunu belirtir.

WebHttpBinding

WebHttpBinding sınıfı, WebMessageEncodingBindingElement kullanarak XML, JSON ve ham ikili veriler için destek içerir. HttpsTransportBindingElement, HttpTransportBindingElement ve bir WebHttpSecurity nesnesinden oluşur. WebHttpBinding ile WebHttpBehaviorbirlikte kullanılacak şekilde tasarlanmıştır.

WebInvokeAttribute

WebInvokeAttribute özniteliği ile benzerdirWebGetAttribute, ancak bir hizmet işlemini GET dışındaki HTTP isteklerine yanıt veren bir işlem olarak işaretlemek için kullanılır. İşlem açıklamasına IOperationBehavior meta veri ekleyen pasif bir işlem davranışıdır (yöntemler hiçbir şey yapmaz). WebInvokeAttribute uygulamasının hiçbir etkisi olmaz, işlem açıklamasında bu meta verileri arayan bir davranış (özellikle WebHttpBehavior) hizmetin davranış koleksiyonuna eklenmedikçe.

özniteliği, WebInvokeAttribute aşağıdaki tabloda gösterilen isteğe bağlı parametreleri alır.

Parametre Açıklama
BodyStyle Özniteliğin uygulandığı hizmet işlemine gönderilen ve bu işlemden alınan isteklerin ve yanıtların sarmalanıp sarmalmayacağını denetler.
Method Hizmet işleminin eşlendiği HTTP yöntemini belirtir.
RequestFormat İstek iletilerinin nasıl biçimlendirildiğini denetler.
ResponseFormat Yanıt iletilerinin nasıl biçimlendirildiğini denetler.
UriTemplate Hangi GET isteklerinin özniteliğin uygulandığı hizmet işlemine eşlendiğini denetleen URI şablonunu belirtir.

UriTemplate

sınıfı, UriTemplate yapısal olarak benzer bir URI kümesi tanımlamanızı sağlar. Şablonlar, bir yol ve sorgu olmak üzere iki bölümden oluşur. Yol, eğik çizgi (/) ile ayrılmış bir dizi kesimden oluşur. Her bir segment, değişmez bir değer, bir değişken değeri (küme ayraçları [{ }] içinde yazılır ve tam olarak bir segmentin içeriğiyle eşleşecek şekilde sınırlandırılır) veya yolun sonunda "yolun geri kalanıyla" eşleşen joker karakteri olan bir yıldız işareti [*] içerebilir. Sorgu ifadesi tamamen atlanabilir. Varsa, sıralanmamış bir ad/değer çifti serisi belirtir. Sorgu ifadesinin öğeleri değişmez değer çiftleri (?x=2) veya değişken çiftleri (?x={value}) olabilir. Eşleşmeyen değerlere izin verilmez. UriTemplate , WCF WEB HTTP Programlama Modeli tarafından hizmet işlemleriyle belirli URI'leri veya URI gruplarını eşlemek için dahili olarak kullanılır.

UriTemplateTable

sınıfı, UriTemplateTable geliştiricinin UriTemplate seçtiği bir nesneye bağlı ilişkilendirici bir nesne kümesini temsil eder. Aday Tekdüzen Kaynak Tanımlayıcılarını (URI) kümedeki şablonlarla eşleştirmenizi ve eşleşen şablonlarla ilişkili verileri almanızı sağlar. UriTemplateTable , WCF WEB HTTP Programlama Modeli tarafından hizmet işlemleriyle belirli URI'leri veya URI gruplarını eşlemek için dahili olarak kullanılır.

WebServiceHost

WebServiceHost, SOAP olmayan bir Web stili hizmeti barındırmayı kolaylaştırmak için ServiceHost hizmetini genişletir. Hizmet açıklamasında hiçbir uç nokta bulunmazsa WebServiceHost , hizmetin temel adresinde otomatik olarak bir varsayılan uç nokta oluşturur. Varsayılan BIR HTTP uç noktası oluştururken, WebServiceHost meta veri uç noktasının varsayılan HTTP uç noktasını engellememesi için HTTP Yardım sayfasını ve Web Hizmetleri Açıklama Dili (WSDL) GET işlevini de devre dışı bırakır. WebServiceHost ayrıca, WebHttpBinding kullanan tüm uç noktaların gereken WebHttpBehavior'nin eklenmesini sağlar. Son olarak, WebServiceHost uç noktanın bağlantı ayarlarını güvenli bir sanal dizinde kullanıldığında ilişkili Internet Information Services (IIS) güvenlik ayarlarıyla çalışacak şekilde otomatik şekilde ayarlanır.

WebServiceHostFactory

WebServiceHostFactory sınıfı, bir hizmet Internet Information Services (IIS) veya Windows İşlem Etkinleştirme Hizmeti (WAS) altında barındırıldığında WebServiceHost'i dinamik olarak oluşturmak için kullanılır. Kendinden barındırmalı hizmetlerden farklı olarak, IIS veya WAS altında barındırılan hizmetler, WebServiceHost öğesini oluşturmak için bu sınıfı kullanır. CreateServiceHost(Type, Uri[]) yöntemi, hizmet için gelen bir istek alındığında çağrılır.

WebHttpBehavior

WebHttpBehavior sınıfı, Hizmet Modeli katmanında Web stili hizmet desteği için gerekli biçimlendiricileri, işlem seçicileri vb. sağlar. Bu bir uç nokta davranışı olarak uygulanır (ile WebHttpBindingbirlikte kullanılır) ve her uç nokta için biçimlendiricilerin ve işlem seçicilerinin belirtilmesine olanak tanır ve bu da aynı hizmet uygulamasının hem SOAP hem de POX uç noktalarını kullanıma sunmasına olanak tanır.

WebHttpBehavior'ı Genişletme

WebHttpBehavior bir dizi sanal yöntem kullanılarak genişletilebilir: GetOperationSelector(ServiceEndpoint), GetReplyClientFormatter(OperationDescription, ServiceEndpoint), GetRequestClientFormatter(OperationDescription, ServiceEndpoint), GetReplyDispatchFormatter(OperationDescription, ServiceEndpoint)ve GetRequestDispatchFormatter(OperationDescription, ServiceEndpoint). Geliştiriciler, varsayılan davranışı özelleştirmek için öğesinden WebHttpBehavior bir sınıf türetebilir ve bu yöntemleri geçersiz kılabilir.

WebScriptEnablingBehavior, WebHttpBehavior genişletmenin bir örneğidir. WebScriptEnablingBehavior , Windows Communication Foundation (WCF) uç noktalarının tarayıcı tabanlı ASP.NET AJAX istemcisinden HTTP istekleri almasını sağlar. HTTP POST Kullanan AJAX Hizmeti, bu genişletilebilirlik noktasının kullanılmasına bir örnektir.

Uyarı

WebScriptEnablingBehavior kullanılırken, UriTemplate veya WebGetAttribute öznitelikleri içinde WebInvokeAttribute desteklenmez.

WebHttp Dağıtım İşlemi Seçici

WebHttpDispatchOperationSelector sınıfı, UriTemplate ve UriTemplateTable sınıflarını hizmet işlemlerine çağrı göndermek için kullanır.

Uyumluluk

WCF WEB HTTP Programlama Modeli SOAP tabanlı iletileri kullanmaz ve bu nedenle WS-* protokollerini desteklemez. Bununla birlikte, aynı sözleşmeyi iki farklı uç noktayla kullanıma sunun: biri SOAP kullanırken diğeri SOAP kullanmıyor. Bir örnek için bkz . Nasıl yapılır: Sözleşmeyi SOAP ve Web İstemcilerine Sunma .

Güvenlik

WCF WEB HTTP Programlama Modeli WS-* protokollerini desteklemediğinden, WCF WEB HTTP Programlama Modeli üzerinde oluşturulan bir Web hizmetinin güvenliğini sağlamanın tek yolu, hizmetinizi SSL kullanarak kullanıma sunmadır. IIS 7.0 ile SSL ayarlama hakkında daha fazla bilgi için bkz. IIS'de SSL uygulama.

Ayrıca bakınız