Feed-BeispielStand-Alone Diagnostics Feed Sample

Dieses Beispiel veranschaulicht, wie einen RSS/Atom-feed für die Syndizierung mit Windows Communication Foundation (WCF) zu erstellen.This sample demonstrates how to create an RSS/Atom feed for syndication with Windows Communication Foundation (WCF). Es ist eine einfache "Hello World"-Programm, das veranschaulicht die Grundlagen des Objektmodells und zum Einrichten eines Windows Communication Foundation (WCF)-Diensts.It is a basic "Hello World" program that shows the basics of the object model and how to set it up on a Windows Communication Foundation (WCF) service.

WCF modelliert Syndication-Feeds als Dienstvorgänge, die einen speziellen Datentyp zurückgeben SyndicationFeedFormatter.WCF models syndication feeds as service operations that return a special data type, SyndicationFeedFormatter. Instanzen von SyndicationFeedFormatter können einen Feed sowohl in das Format RSS 2.0 als auch in das Format Atom 1.0 serialisieren.Instances of SyndicationFeedFormatter can serialize a feed into both the RSS 2.0 and Atom 1.0 formats. Der folgende Beispielcode zeigt den verwendeten Vertrag.The following sample code shows the contract used.

[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);  
    }  

Die GetProcesses Vorgang mit dem versehen ist die WebGetAttribute -Attribut, das können Sie steuern, wie WCF leitet HTTP GET-Anforderungen Dienstvorgänge, und geben Sie das Format der gesendeten Nachrichten.The GetProcesses operation is annotated with the WebGetAttribute attribute that enables you to control how WCF dispatches HTTP GET requests to service operations and specify the format of the messages sent.

Wie alle WCF-Dienst können Syndication-Feeds selbst in jeder verwalteten Anwendung gehostet werden.Like any WCF service, syndication feeds can be self hosted in any managed application. Syndication-Dienste erfordern eine bestimmte Bindung (die WebHttpBinding) und ein bestimmtes Endpunktverhalten (das WebHttpBehavior), um ordnungsgemäß zu funktionieren.Syndication services require a specific binding (the WebHttpBinding) and a specific endpoint behavior (the WebHttpBehavior) to function correctly. Die neue WebServiceHost-Klasse stellt eine geeignete API zur Erstellung solcher Endpunkte ohne eine spezielle Konfiguration bereit.The new WebServiceHost class provides a convenient API for creating such endpoints without specific configuration.

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)  

Alternativ können Sie WebServiceHostFactory in einer in IIS gehosteten .svc-Datei verwenden, um die entsprechende Funktionalität bereitzustellen (dieses Verfahren wird in diesem Beispielcode nicht gezeigt).Alternatively, you can use WebServiceHostFactory from within an IIS-hosted .svc file to provide equivalent functionality (this technique is not demonstrated in this sample code).

<%@ ServiceHost Language="C#|VB" Debug="true" Service="ProcessService" %>  

Da dieser Dienst Anforderungen über die HTTP GET-Standardmethode empfängt, können Sie jeden beliebigen RSS- oder ATOM-fähigen Client verwenden, um auf den Dienst zuzugreifen.Because this service receives requests using the standard HTTP GET, you can use any RSS or ATOM-aware client to access the service. Sie können z. B. die Ausgabe dieses Dienstes anzeigen, navigieren Sie zur http://localhost:8000/diagnostics/feed/?format=atom oder http://localhost:8000/diagnostics/feed/?format=rss in einem RSS-fähigen Browser wie Internet Explorer 7.For example, you can view the output of this service by navigating to http://localhost:8000/diagnostics/feed/?format=atom or http://localhost:8000/diagnostics/feed/?format=rss in an RSS-aware browser such as Internet Explorer 7.

Sie können auch die wie das WCF Syndication-Objekt Modell Maps Atom und RSS syndizierte Daten gelesen und mithilfe von imperativem Code zu verarbeiten.You can also use the How the WCF Syndication Object Model Maps to Atom and RSS to read syndicated data and process it using imperative code.

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());  
}  

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie die richtige Adresse Registrierung-Berechtigung für HTTP und HTTPS auf dem Computer verfügen, wie in der Gruppe von Anweisungen in erläutert Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have the right address registration permission for HTTP and HTTPS on the computer as explained in the set up instructions in One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Erstellen Sie die Projektmappe.Build the solution.

  3. Führen Sie die Konsolenanwendung aus.Run the console application.

  4. Während die Konsolenanwendung ausgeführt wird, wechseln Sie zu http://localhost:8000/diagnostics/feed/?format=atom oder http://localhost:8000/diagnostics/feed/?format=rss mit einem RSS-fähigen Browser.While the console application is running, navigate to http://localhost:8000/diagnostics/feed/?format=atom or http://localhost:8000/diagnostics/feed/?format=rss using an RSS-aware browser.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, fahren Sie mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples for .NET Framework 4 aller Windows Communication Foundation (WCF) herunterladen und WFWF Beispiele.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Syndication\DiagnosticsFeed

Siehe auchSee Also

WCF-Web-HTTP-ProgrammiermodellWCF Web HTTP Programming Model
WCF SyndicationWCF Syndication