Recupero delle variabili rilevate dall'archivio di monitoraggio di Windows Server AppFabric
Nell'esempio viene mostrato come utilizzare Entity Framework per recuperare e deserializzare le variabili di flusso di lavoro rilevate dal database di monitoraggio di AppFabric. Verranno fornite informazioni su alcune delle viste pubbliche esposte dal database di monitoraggio che rende possibile questo processo. L'esempio funziona con qualsiasi applicazione. Si consiglia di utilizzare l'Applicazione di esempio di Windows Server AppFabric comune, creata per l'utilizzo con gli esempi di AppFabric. Per individuare questa applicazione, passare alla cartella <esempi>\SampleApplication\OrderApplication, in cui <esempi> è il percorso nel quale sono stati installati gli esempi di AppFabric.
Nota
Gli esempi vengono forniti solo per scopi didattici. Non sono destinati a essere utilizzati in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non fornisce supporto tecnico per questi esempi.
Prerequisiti
Installazione di Windows Server AppFabric con la funzione di monitoraggio attivata.
Almeno un servizio WCF o WF ospitato in AppFabric.
Nota
Questo esempio risulta più dettagliato per quanto riguarda le funzionalità di monitoraggio se il servizio viene configurato per tenere traccia di una variabile di tipo complesso.
Se si stanno deserializzando variabili rilevate da un assembly personalizzato, aggiungere l'assembly (ad esempio, l'Applicazione di esempio AppFabric) come riferimento per questo progetto in modo che gli oggetti vengano deserializzati in modo appropriato.
File di esempio
Questo esempio è associato ai file seguenti:
Struttura della soluzione Visual Studio 2010 e file di codice di supporto
TrackedWFVariable.cs
Program.cs
Installazione ed esecuzione dell'esempio
Verificare che le variabili siano state rilevate e memorizzate nel database di monitoraggio. A tale scopo, analizzare la visualizzazione WFEventProperties e verificare che vi siano delle righe.
Aprire la soluzione Visual Studio inclusa nell'esempio.
Importante
Verificare che l'account in uso disponga dell'accesso in lettura al database di monitoraggio di AppFabric.
Modificare il valore del database in Program.cs in modo che faccia riferimento al database desiderato.
Modificare il valore passato al costruttore AppFabricMonitoringEntities in Program.cs. Per impostazione predefinita, fa riferimento all'istanza SQL Express. Per semplicità, è stato incluso il nome di una istanza SQL standard nella parte iniziale del file.
Generare ed eseguire l'esempio premendo F5.
Spiegazione dell'esempio
Program.cs utilizza Entity Framework per eseguire query sul database per gli eventi del flusso di lavoro più recenti. La classe TrackedWFVariable utilizza il contesto dei dati di Entity Framework per connettersi e recuperare righe di WFEventProperty relative agli eventi recenti. Le proprietà vengono quindi deserializzate nei tipi di .NET originali. Questo processo è diverso in base al tipo di oggetto che viene deserializzato.
I tipi seguenti vengono memorizzati come semplice rappresentazione della stringa nella colonna Valore della visualizzazione WFEventProperties:
System.String
System.Char
System.Boolean
System.Int32
System.Int16
System.Int64
System.UInt32
System.UInt16
System.UInt64
System.Single
System.Double
System.Guid
System.DateTimeOffset
System.DateTime
È possibile deserializzare questi tipi chiamando i metodi Parse da essi definiti, passando nei valori della stringa come parametro. I valori di tutti gli altri tipi vengono memorizzati nella colonna ValueBlob della visualizzazione WFEventProperties ed è necessario deserializzarli utilizzando System.Runtime.Serialization.NetDataContractSerializer. A tale scopo, è necessario che l'assembly che dichiara il tipo da deserializzare sia caricato. Gli oggetti vengono memorizzati nel database in questo modo, per far sì che i client SQL possano eseguire query sui tipi più semplici sopra elencati.
Rimozione dell'esempio
Questo esempio non lascia artefatti. Se si desidera, è possibile eliminare i file di esempio.
2011-12-05