Récupération des variables suivies à partir du magasin de surveillance de Windows Server AppFabric
Cet exemple montre comment utiliser Entity Framework pour extraire et désérialiser des variables de flux de travail suivies de la base de données de surveillance d'AppFabric. Vous allez découvrir certaines des vues publiques exposées par la base de données de surveillance qui rendent cela possible. Cet exemple est adapté à toutes les applications. Nous recommandons l'Exemple d'application courante de Windows Server AppFabric créé pour être utilisé avec les exemples AppFabric. Pour trouver cette application, accédez au dossier <samples>\SampleApplication\OrderApplication, où <samples> représente le chemin d'accès aux exemples AppFabric.
Notes
Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucune assistance technique pour ces exemples.
Conditions préalables
Installation de Windows Server AppFabric avec la surveillance configurée.
Au minimum l'un des services WCF ou WF hébergés dans AppFabric.
Notes
Cet exemple illustre mieux les capacités de surveillance si le service est configuré pour suivre une variable de type complexe.
Si vous désérialisez des variables suivies d'un assembly personnalisé, veillez à ajouter l'assembly (par exemple, l'application AppFabric) comme référence pour ce projet, de façon à pouvoir désérialiser correctement ces objets.
Fichiers de l'exemple
Cet exemple est fourni avec les fichiers suivants :
fichiers de structure de solution et de code de support VS 2010 ;
TrackedWFVariable.cs ;
Program.cs.
Configuration et exécution de l'exemple
Assurez-vous que les variables ont été suivies et stockées dans la base de données de surveillance. Pour ce faire, inspectez la vue WFEventProperties et assurez-vous qu'elle contient des lignes.
Ouvrez la solution Visual Studio fournie avec cet exemple.
Important
Assurez-vous que vous opérez sous un compte disposant d'un accès en lecture à la base de données de surveillance d'AppFabric.
Modifiez la valeur Database dans Program.cs, de façon à ce qu'elle pointe vers la base de données souhaitée.
Modifiez la valeur transmise au constructeur AppFabricMonitoringEntities dans Program.cs. Par défaut, elle pointe sur une instance de SQL Express. Un nom d'instance SQL standard a été inclus dans le haut du fichier par souci de simplicité.
Générez et exécutez l'exemple en appuyant sur F5.
Description de l'exemple
Program.cs utilise Entity Framework pour interroger la base de données concernant les événements de flux de travail les plus récents. La classe TrackedWFVariable utilise le contexte de données d'Entity Framework pour se connecter afin d'extraire toutes les lignes WFEventProperty en relation avec les événements récents. Les propriétés sont ensuite désérialisées en leurs types .NET d'origine. Ce processus diffère en fonction du type de l'objet à désérialiser.
Les types suivants sont stockés comme représentation sous forme de chaîne simple dans la colonne Value de la vue 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
Il est possible de désérialiser ces types en appelant les méthodes d'analyse statique qu'ils définissent, en passant les valeurs de chaîne sous la forme d'un paramètre. Tous les autres types ont leur valeur stockée dans la colonne ValueBlob de la vue WFEventProperties et doivent être désérialisés à l'aide de System.Runtime.Serialization.NetDataContractSerializer. Cela requiert le chargement de l'assembly qui déclare le type à désérialiser. Les objets sont stockés dans la base de données de cette façon afin que des clients SQL puissent interroger aisément les types plus simples répertoriés ci-dessus.
Suppression de l'exemple
La suppression de cet exemple ne laisse subsister aucun artefact. Vous pouvez supprimer les fichiers d'exemple si vous le souhaitez
2011-12-05