Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo esempio dimostra come creare un feed in formato RSS o ATOM di diffusione con Windows Communication Foundation (WCF). Si tratta di un programma "Hello World" di base che fornisce le nozioni fondamentali del modello a oggetti e come configurarlo in un servizio Windows Communication Foundation (WCF).
Nota
Per poter essere generato ed eseguito, l'esempio richiede che sia installato .NET Framework versione 3.5. Per aprire il progetto e i file della soluzione è necessario Visual Studio 2008.
WCF modella feed di diffusione in forma di operazioni di servizio che restituiscono un tipo di dati speciale, SyndicationFeedFormatter. Le istanze dell’elemento SyndicationFeedFormatter possono serializzare un feed in entrambi i formati RSS 2.0 e ATOM, 1.0. Nell'esempio di codice seguente viene illustrato il contratto utilizzato.
[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);
}
L'operazione GetProcesses è annotata con l'attributo WebGetAttribute che consente di controllare come WCF invia richieste HTTP GET alle operazioni di servizio e di specificare il formato dei messaggi inviati.
Come tutti i servizi WCF, i feed di diffusione possono essere indipendenti o ospitati in qualsiasi applicazione gestita. Per funzionare correttamente, i servizi di diffusione richiedono un'associazione specifica (WebHttpBinding) e un comportamento dell'endpoint specifico (WebHttpBehavior). La nuova classe WebServiceHost fornisce una API appropriata per la creazione degli endpoint senza configurazione specifica.
WebServiceHost host = new WebServiceHost(typeof(ProcessService), new Uri("https://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)
In alternativa, è possibile utilizzare WebServiceHostFactory dall'interno di un file con estensione svc ospitato in IIS per fornire una funzionalità equivalente (questa tecnica non viene dimostrata in questo codice di esempio).
<%@ ServiceHost Language="C#|VB" Debug="true" Service="ProcessService" %>
Dato che il servizio riceve richieste utilizzando l’ HTTP GET standard, per accedere al servizio è possibile utilizzare qualsiasi client che supporta il formato RSS o ATOM. Ad esempio, è possibile visualizzare l'output di questo servizio visitando https://localhost:8000/diagnostics/feed/?format=atom o https://localhost:8000/diagnostics/feed/?format=rss in un browser che supporta il formato RSS, come Internet Explorer 7.
Ė inoltre possibile utilizzare Syndication Object Model per leggere i dati diffusi ed elaborarli utilizzando codice imperativo.
XmlReader reader = XmlReader.Create( "https://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());
}
Per impostare, compilare ed eseguire l'esempio DIBLOOK
Verificare di disporre dell'autorizzazione di registrazione dell'indirizzo necessaria per HTTP e HTTPS nel computer, come illustrato nelle istruzioni di installazione in Procedura di installazione singola per gli esempi di Windows Communication Foundation.
Compilare la soluzione.
Eseguire l'applicazione console.
Durante l'esecuzione dell'applicazione console, è possibile visitare la pagina https://localhost:8000/diagnostics/feed/?format=atom/ o https://localhost:8000/diagnostics/feed/?format=rss in un browser che supporta il formato RSS.
Vedere anche
Altre risorse
Web Programming Model
WCF Syndication
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.