Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows Communication Foundation (WCF) AJAX hizmetlerine, AJAX ASP.NET gerekmeden JavaScript özellikli herhangi bir Web sayfasından erişilebilir. Bu konuda, böyle bir WCF hizmetinin nasıl oluşturulacağı açıklanmaktadır.
ASP.NET AJAX ile WCF kullanma yönergeleri için bkz. ASP.NET AJAX için WCF Hizmetleri Oluşturma.
WCF AJAX hizmeti oluşturmanın üç bölümü vardır:
Tarayıcıdan erişilebilen bir AJAX uç noktası oluşturma.
AJAX uyumlu bir hizmet sözleşmesi oluşturma.
WCF AJAX hizmetlerine erişme.
AJAX Uç Noktası Oluşturma
Bir WCF hizmetinde AJAX desteğini etkinleştirmenin en temel yolu, aşağıdaki örnekte olduğu gibi hizmetiyle ilişkilendirilmiş .svc dosyasında kullanmaktır WebServiceHostFactory .
<%ServiceHost
language=c#
Debug="true"
Service="Microsoft.Ajax.Samples.CityService"
Factory=System.ServiceModel.Activation.WebServiceHostFactory
%>
Alternatif olarak, AJAX uç noktası eklemek için yapılandırmayı da kullanabilirsiniz. Hizmet uç noktasında WebHttpBinding kullanın ve bu uç noktayı, aşağıdaki kod parçacığında gösterildiği gibi WebHttpBehavior ile yapılandırın.
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="AjaxBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="Microsoft.Ajax.Samples.CityService">
<endpoint
address="ajaxEndpoint"
behaviorConfiguration="AjaxBehavior"
binding="webHttpBinding"
contract="Microsoft.Ajax.Samples.ICityService" />
</service>
</services>
</system.serviceModel>
</configuration>
Çalışan bir örnek için bkz. JSON ve XML ile AJAX Hizmeti.
AJAX-Compatible Hizmet Sözleşmesi Oluşturma
Varsayılan olarak, bir AJAX uç noktası üzerinden kullanıma sunulan hizmet sözleşmeleri verileri XML biçiminde döndürür. Ayrıca, aşağıdaki örnekte gösterildiği gibi, varsayılan olarak hizmet işlemlerine HTTP POST istekleri aracılığıyla uç nokta adresini ve ardından işlem adını içeren URL'lere erişilebilir.
[OperationContract]
string[] GetCities(string firstLetters);
Bu işleme, http://serviceaddress/endpointaddress/GetCities
adresine yapılan bir HTTP POST isteği yoluyla erişilebilir ve bu işlem bir XML iletisi döndürür.
Bu temel özellikleri özelleştirmek için tam Web Programlama Modeli'ni kullanabilirsiniz. Örneğin, işlemin yanıt verdiği HTTP fiilini denetlemek için WebGetAttribute veya WebInvokeAttribute özniteliklerini kullanabilir veya özel URI'leri belirtmek için bu ilgili özniteliklerin UriTemplate
özelliğini kullanabilirsiniz. Daha fazla bilgi için WCF Web HTTP Programlama Modeli konusuna bakın.
JSON veri biçimi genellikle AJAX hizmetlerinde kullanılır. XML yerine JSON döndüren bir işlem oluşturmak için ResponseFormat (veya ResponseFormat) özelliğini Json olarak ayarlayın. Stand-Alone JSON Serileştirme konusu, yerleşik .NET türlerinin ve veri sözleşmesi türlerinin JSON ile nasıl eşlenmiş olduğunu gösterir.
Normalde JSON istekleri ve yanıtları yalnızca bir öğeden oluşur. Önceki GetCities
işlem için istek aşağıdaki deyime benzer.
"na"
Bu isteğin yanıtı aşağıdaki deyime benzer.
["Nairobi", "Naples", "Nashville"]
İşlem fazladan bir parametre alırsa, istek stili her iki parametreyi de tek bir JSON nesnesine sarmalama amacıyla sarmalanmalıdır. Bu stil JSON iletisinin bir örneği aşağıdaki örnekte verilmiştir.
{"firstLetters": "na", "maxNumber": 2}
Aşağıdaki sözleşme bu iletiyi kabul eder.
[WebInvoke(BodyStyle=WebMessageBodyStyle.WrappedRequest, ResponseFormat=WebMessageFormat.Json)]
[OperationContract]
string[] GetCities(string firstLetters, int maxNumber);
AJAX Hizmetlerine Erişme
WCF AJAX uç noktaları her zaman hem JSON hem de XML isteklerini kabul eder.
İçerik türü "application/json" olan HTTP POST istekleri JSON olarak kabul edilir ve xml (örneğin, "metin/xml") belirten içerik türüne sahip olanlar XML olarak kabul edilir.
HTTP GET istekleri, URL'nin kendisindeki tüm istek parametrelerini içerir.
Uç noktaya HTTP isteğinin nasıl oluşturulacağı kullanıcıya aittir. Ayrıca kullanıcı, isteğin gövdesini oluşturan JSON oluşturma üzerinde tam denetime sahiptir. JavaScript'ten istek oluşturma örneği için bkz. JSON ve XML ile AJAX Hizmeti.