WCF Async Callback Setup для опрошенного устройства
-
18-09-2019 - |
Вопрос
У меня есть настройка службы WCF для управления USB -считывателем отпечатков пальцев из наших приложений .NET. Это работает нормально, и я могу попросить его зарегистрировать пользователей и так далее.
Читатель разрешает идентифицировать (он говорит вам, что конкретный пользователь представил свой палец, а не просил его убедиться, что палец конкретного пользователя присутствует), но устройство должно постоянно оправляться в режиме идентификации для его статуса - когда Пользователь обнаруживает изменения статуса.
Я хочу, чтобы заинтересованное приложение уведомило услугу, которую он хочет знать, когда пользователь идентифицируется, и предоставит обратный вызов, который запускается, когда это произойдет. Служба WCF вернется немедленно и появится на заднем плане потока, чтобы постоянно опросить устройство. Этот опрос может продолжаться часами, если никто не пытается войти в систему.
Как лучше всего это добиться? Мой контракт на обслуживание в настоящее время определяется следующим образом:
[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);
...
}
В моем BeginIdentification()
Метод Могу ли я легко породить рабочую систему, чтобы опросить устройство, или легче сделать услугу WCF асинхронным?
Решение
Я думаю, что гораздо лучше сделать операцию службы WCF асинхронно. Эта статья MSDN показывает, как это сделать:http://msdn.microsoft.com/en-us/library/ms730059.aspx.