sheik SHA Ответов: 2

Служба Wcf не отправляет обновления клиенту


У меня есть служба WCF, каждые 30 секунд она передает статус подключенным клиентам
мой сервисный код здесь:
private void StartStatusPushing(int callBackInterval)
        {
            Task.Factory.StartNew(
                () =>
                {                    
                    while (true)
                    {
                        Thread.Sleep(callBackInterval);
                        // come code here.
                    }
                },
                TaskCreationOptions.LongRunning);
        }

У меня есть клиентское приложение, и я получаю статус каждые 30 секунд по каналу обратного вызова.

У меня есть такая проблема:
1. При первом запуске сервиса и запустил клиент
2. служба, отправляющая обновления, и клиент, получающий обновления.
3. Затем я закрыл клиент и начал снова, не закрывая сервис
4. Тогда служба не толкает (обычно после X вторая публикация метод должен работать).

так как же решить эти вопросы.

Что я уже пробовал:

раньше у меня было одно клиентское приложение, но теперь у меня есть 2 приложения, так что оба должны получать обновления

Richard Deeming

NB: Ваш метод держит один поток постоянно спящим только для того, чтобы вызывать некоторый код каждые несколько секунд. Вероятно, было бы лучше использовать Таймер[^] вместо.

2 Ответов

Рейтинг:
2

RamiroX

Я думаю, что ваш WCF перешел в недопустимое состояние после закрытия клиента. Это означает, что вы больше не можете использовать этот предыдущий прокси-сервер WCF.


sheik SHA

Есть ли какой-нибудь способ исправить это?

Рейтинг:
0

sheik SHA

Спасибо я нашел его :)

в коде я установил ClosedTimeout на 10 минут, поэтому он не публикует обновление статуса до следующих 10 минут, поэтому я установил его на 10 секунд, чтобы он работал как ожидалось

Большое вам спасибо за Вашу поддержку.