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.
DiagnosticsFeed örneği, Windows Communication Foundation (WCF) ile dağıtım için RSS/Atom akışının nasıl oluşturulacağını gösterir. Nesne modelinin temellerini ve bir Windows Communication Foundation (WCF) hizmetinde nasıl ayarlandığını gösteren temel bir "Merhaba Dünya" programıdır.
WCF, dağıtım akışlarını, özel bir veri türü SyndicationFeedFormatter döndüren hizmet işlemleri olarak modeller. SyndicationFeedFormatter örnekleri bir akışı hem RSS 2.0 hem de Atom 1.0 biçimlerinde seri hale getirebilir. Aşağıdaki örnek kod, kullanılan sözleşmeyi gösterir.
[ServiceContract(Namespace = "")]
interface IDiagnosticsService
{
[OperationContract]
//The [WebGet] attribute controls how WCF dispatches
//HTTP requests to service operations based on a URI suffix
//(the part of the request URI after the endpoint address)
//using the HTTP GET method. The UriTemplate specifies a relative
//path of 'feed', and specifies that the format is
//supplied using a query string.
[WebGet(UriTemplate="feed?format={format}")]
[ServiceKnownType(typeof(Atom10FeedFormatter))]
[ServiceKnownType(typeof(Rss20FeedFormatter))]
SyndicationFeedFormatter GetProcesses(string format);
}
GetProcesses operasyonu, WCF'nin HTTP GET isteklerini hizmet operasyonlarına nasıl yönlendirdiğini kontrol etmenize ve gönderilen iletilerin formatını belirlemenize olanak tanıyan WebGetAttribute özniteliği ile açıklanmıştır.
Tüm WCF hizmetlerinde olduğu gibi, dağıtım akışları da yönetilen herhangi bir uygulamada kendi kendine barındırılabilir. Dağıtım hizmetlerinin düzgün çalışması için belirli bir bağlama () WebHttpBindingve belirli bir uç nokta davranışı () WebHttpBehaviorgerekir. Yeni WebServiceHost sınıf, belirli bir yapılandırma olmadan bu tür uç noktaları oluşturmak için uygun bir API sağlar.
WebServiceHost host = new WebServiceHost(typeof(ProcessService), new Uri("http://localhost:8000/diagnostics"));
//The WebServiceHost will automatically provide a default endpoint at the base address
//using the proper binding (the WebHttpBinding) and endpoint behavior (the WebHttpBehavior)
Alternatif olarak, iis tarafından barındırılan bir .svc dosyasının içinden kullanarak eşdeğer işlevsellik sağlayabilirsiniz WebServiceHostFactory (bu teknik bu örnek kodda gösterilmez).
<% @ServiceHost Language="C#|VB" Debug="true" Service="ProcessService" %>
Bu hizmet, istekleri standart HTTP GET kullanarak aldığından, hizmete erişmek için herhangi bir RSS veya ATOM kullanan istemciyi kullanabilirsiniz. Örneğin, RSS destekleyen bir tarayıcıda http://localhost:8000/diagnostics/feed/?format=atom veya http://localhost:8000/diagnostics/feed/?format=rss adresine giderek bu hizmetin çıkışını görüntüleyebilirsiniz.
Ayrıca WCF Dağıtım Nesne Modelinin Atom ve RSS ile Eşlendiği verileri okumak ve bunları programlama kodu kullanarak işlemek için de kullanabilirsiniz.
XmlReader reader = XmlReader.Create( "http://localhost:8000/diagnostics/feed/?format=rss",
new XmlReaderSettings()
{
//MaxCharactersInDocument can be used to control the maximum amount of data
//read from the reader and helps prevent OutOfMemoryException
MaxCharactersInDocument = 1024 * 64
} );
SyndicationFeed feed = SyndicationFeed.Load(reader);
foreach (SyndicationItem i in feed.Items)
{
XmlSyndicationContent content = i.Content as XmlSyndicationContent;
ProcessData pd = content.ReadContent<ProcessData>();
Console.WriteLine(i.Title.Text);
Console.WriteLine(pd.ToString());
}
Örneği ayarlama, derleme ve çalıştırma
Windows Communication Foundation Örnekleri için Kurulum Yordamı'nınOne-Time kurulum yönergelerinde açıklandığı gibi bilgisayarda HTTP ve HTTPS için doğru adres kaydı iznine sahip olduğunuzdan emin olun.
Çözümü oluşturun.
Konsol uygulamasını çalıştırın.
Konsol uygulaması çalışırken, bir RSS işlevine sahip tarayıcı kullanarak
http://localhost:8000/diagnostics/feed/?format=atomveyahttp://localhost:8000/diagnostics/feed/?format=rss'e gidin.
Ayrıca bakınız
- WCF Web HTTP Programlama Modeli
- WCF Eşzamanlama