Recupero delle variabili rilevate dall'archivio di monitoraggio di AppFabric

In questo 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. È consigliabile utilizzare l'Applicazione di esempio di AppFabric comune, appositamente creata per l'interazione con gli esempi di AppFabric. Per individuare questa applicazione, passare alla cartella <esempi>\SampleApplication\OrderApplication, dove <esempi> è il percorso in cui sono stati installati gli esempi di AppFabric.

noteNota
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

  • Un'installazione di Microsoft AppFabric 1.1 per Windows Server in cui è stato configurato il monitoraggio

  • Almeno un servizio WCF o WF ospitato in AppFabric

noteNota
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 di 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

  1. 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.

  2. Aprire la soluzione Visual Studio inclusa nell'esempio.

    ImportantImportante
    Verificare che l'account in uso disponga dell'accesso in lettura al database di monitoraggio di AppFabric.

  3. Modificare il valore del database in Program.cs in modo che faccia riferimento al database desiderato.

  4. 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.

  5. 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.

  2012-03-05
Mostra: