SQLStoreExtensibility
Cette rubrique s'applique à Windows Workflow Foundation 4.
Cet exemple illustre l'utilisation et la configuration de propriétés promues dans le magasin d'instances de workflow SQL. Le magasin d'instances de workflow SQL est une implémentation basée sur SQL d'un magasin d'instances. Il permet à une instance d'enregistrer et de charger son état vers et à partir d'une base de données SQL Server ou SQL Server Express. La fonctionnalité d'extensibilité de magasin permet à l'utilisateur de définir des propriétés qui sont stockées dans le magasin d'instances. Ces propriétés sont affichées dans une vue de propriétés promues qui permet à l'utilisateur de les rechercher.
Cet exemple est composé d'un workflow qui implémente un service de comptage. Une fois que la méthode de démarrage du service est appelée, le service compte de 0 à 29. Le compteur est incrémenté une fois toutes les 2 secondes. Après chaque compte, le workflow rend son état persistant. La valeur actuelle du compteur est stockée dans le magasin d'instances sous la forme d'une propriété promue.
Le workflow de comptage est auto-hébergé par un hôte de service de workflow. La méthode Main
du programme effectue les actions suivantes :
Crée une instance de l'hôte du service du workflow qui héberge le workflow de comptage et définit les points de terminaison sous lesquels le workflow de comptage peut être atteint.
Définit un comportement de magasin d'instances de workflow SQL, lequel est utilisé pour configurer le magasin d'instances de workflow SQL. Le magasin a pour instruction de traiter
CountStatus
comme une propriété promue.Crée un client qui appelle la méthode de démarrage du workflow de comptage.
Une fois le programme démarré, le compteur commence automatiquement le comptage. Notez que le chargement de l'instance et la configuration du magasin d'instances de workflow SQL peut prendre quelques secondes.
Pour promouvoir la valeur du compteur en tant que propriété personnalisée, les étapes suivantes doivent être effectuées :
La classe
CounterStatus
définit une extension d'instance de type PersistenceParticipant, qui est utilisée par les activités pour fournir les variables d'état.Count
est défini en tant que valeur en écriture seule. Lorsqu'une instance de workflow atteint un point de persistance, l'extension d'instance enregistre la propriétéCount
dans la collecte de données de persistance.Lors de la création du magasin d'instances, une nouvelle propriété,
CountStatus
, est définie via la méthodestore.Promote()
.L'activité
SaveCounter
du workflow affecte la valeur actuelle du compteur au champ d'étatCount
.
Pour utiliser cet exemple
Créez la base de données du magasin d'instances.
Ouvrez une invite de commandes Visual Studio 2010.
Accédez au répertoire de l'exemple (\WF\Basic\Persistence\SqlStoreExtensibility\CS) et exécutez CreateInstanceStore.cmd dans l'invite de commandes Visual Studio 2010.
Attention :
Le script CreateInstanceStore.cmd tente de créer la base de données sur l'instance par défaut de SQL Server 2008 Express. Si vous voulez installer la base de données sur une instance différente, modifiez le script en conséquence.
Ouvrez Visual Studio 2010 et chargez la solution SqlStoreExtensibility.sln, puis générez-la en appuyant sur F6.
Attention :
Si vous avez installé la base de données sur une instance autre que l'instance par défaut de SQL Server, mettez à jour la chaîne de connexion dans le code avant de générer la solution. Exécutez l'exemple avec des privilèges d'administrateur. Pour ce faire, accédez au répertoire bin du projet (\WF\Basic\Persistence\SqlStoreExtensibility\bin\Debug) dans l'Explorateur Windows, cliquez avec le bouton droit sur SqlStoreExtensibility.exe, puis sélectionnez Exécuter en tant qu'administrateur.
Pour vérifier que l'exemple fonctionne correctement
Utilisez SQL Server Management Studio pour afficher le contenu de la table d'instances en sélectionnant Bases de données, InstanceStore, puis System.ServiceModel.Activities.DurableInstancing.InstanceTable dans l'Explorateur d'objets, cliquez avec le bouton droit sur System.ServiceModel.Activities.DurableInstancing.InstanceTable, puis sélectionnez Sélectionner les 1000 lignes du haut. Pour plus d'informations sur le sujet suivant SQL Server Management Studio, consultez Présentation de SQL Server Management Studio.
Observez les instances de workflow répertoriées.
Dans une invite de commandes Visual Studio 2010, exécutez le script QueryInstanceStore.cmd situé dans le répertoire de l'exemple (\WF\Basic\Persistence\SqlStoreExtensibility).
Observez la valeur du compteur affichée sous CountStatus.
Exécutez le script plusieurs fois pour voir la valeur CountStats changer.
Appuyez sur ENTRÉE pour mettre fin à l'application de workflow.
Pour désinstaller l'exemple
- Supprimez la base de données du magasin d'instances en exécutant le script RemoveInstanceStore.cmd situé dans le répertoire de l'exemple (\WF\Basic\Persistence\SqlStoreExtensibility).
![]() |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WF\Basic\Persistence\SQLStoreExtensibility
|