WCF Web HTTP Programlama Nesnesi 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

AspNetCacheProfileAttributebir hizmet işlemine uygulandığında, asp .NET Çıktı Önbelleği'ndeki işlemden gelen yanıtları önbelleğe almak için tarafından kullanılması gereken yapılandırma dosyasındaki ASP.NET çıkış önbellek profilini gösterir. 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 bu meta verileri işlem açıklamasında (özellikle, ) arayabilen bir davranış hizmetin davranış koleksiyonuna eklenmediği WebHttpBehaviorsürece uygulamasının hiçbir etkisi olmaz. ö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ı, kullanarak XML, JSON ve ham ikili veriler için destek içerirWebMessageEncodingBindingElement. Bir ve HttpTransportBindingElementWebHttpSecurity nesneden HttpsTransportBindingElementoluş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 bu meta verileri işlem açıklamasında (özellikle, ) arayabilen bir davranış hizmetin davranış koleksiyonuna eklenmediği WebHttpBehaviorsürece uygulamasının hiçbir etkisi olmaz.

ö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 kesimin değişmez değeri, değişken değeri (küme ayraçları [{ }] içinde yazılmış, tam olarak bir kesimin içeriğiyle eşleşecek şekilde kısıtlanmış) veya bir joker karakter (yolun sonunda "yolun geri kalanıyla" eşleşen yıldız işareti [*] olarak yazılmış) olabilir. 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

WebServiceHostServiceHost, SOAP olmayan bir Web stili hizmeti barındırmayı kolaylaştırmak için öğesini 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, kullanan WebHttpBinding tüm uç noktaların gerekli WebHttpBehavior ekli olmasını sağlar. Son olarak, WebServiceHost uç noktanın bağlamasını güvenli bir sanal dizinde kullanıldığında ilişkili Internet Information Services (IIS) güvenlik ayarlarıyla çalışacak şekilde otomatik olarak yapılandırılır.

Webservicehostfactory

sınıfı WebServiceHostFactory , bir hizmet Internet Information Services (IIS) veya Windows İşlem Etkinleştirme Hizmeti (WAS) altında barındırıldığında dinamik olarak oluşturmak WebServiceHost için kullanılır. Barındırma uygulamasının iis veya WAS altında barındırılan hizmetlerinin örneğini oluşturduğu şirket içinde barındırılan WebServiceHosthizmetlerden farklı olarak, hizmet için öğesini oluşturmak WebServiceHost için bu sınıfı kullanır. CreateServiceHost(Type, Uri[]) Hizmet için gelen bir istek alındığında yöntemi ç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.

Web'i GenişletmeHttpBehavior

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 genişletilmesine bir örnektirWebHttpBehavior. 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ı

kullanırken WebScriptEnablingBehaviorUriTemplate veya WebInvokeAttribute öznitelikleri içinde WebGetAttribute desteklenmez.

WebHttpDispatchOperationSelector

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

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 bkz.