Question

J'ai une configuration de service WCF pour contrôler un lecteur d'empreintes digitales USB de nos applications .Net. Cela fonctionne très bien et je peux lui demander de nous inscrire des utilisateurs et ainsi de suite.

Le lecteur permet d'identifier (il vous indique qu'un utilisateur particulier a présenté son doigt, plutôt que de lui demander de vérifier que le doigt d'un utilisateur particulier est présent), mais le dispositif doit être constamment sondé en mode d'identification pour son statut -. lorsqu'il détecte un utilisateur les changements d'état

Ce que je veux est une demande intéressée d'informer le service qu'il veut savoir quand un utilisateur est identifié, et de fournir un rappel qui se déclenche lorsque cela se produit. Le service WCF retourne immédiatement et frayer un fil en arrière-plan de sondage en continu du dispositif. Ce scrutin pourrait se poursuivre pendant des heures à un moment si personne ne tente de se connecter.

Quelle est la meilleure façon de acheive cela? Mon contrat de service est actuellement défini comme suit:

[ServiceContract (CallbackContract=typeof(IBiometricCallback))]
public interface IBiometricWcfService
{
    ...
    [OperationContract (IsOneWay = true)]
    void BeginIdentification();
    ...
}

public interface IBiometricCallback
{
    ...
    [OperationContract(IsOneWay = true)]
    void IdentificationFinished(int aUserId, string aMessage, bool aSuccess);
    ...
}

Dans ma méthode BeginIdentification() je peux frayer facilement un thread de travail pour interroger le dispositif, ou est-il plus facile de faire le asynchrone service WCF?

Était-ce utile?

La solution

Je pense qu'il est préférable de rendre l'opération de service WCF de manière asynchrone. Cet article MSDN montre comment le faire: http://msdn.microsoft.com /en-us/library/ms730059.aspx .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top