Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проверка доступности WCF сервиса / 5 сообщений из 5, страница 1 из 1
10.10.2011, 20:45
    #37476213
ValeraSmirnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка доступности WCF сервиса
Уважаемые коллеги!
Пишу клиент-серверное приложение на WCF/WPF.
Возникла задача при потере связи вновь подключаться в сервису.
Кто как решает подобные вещи?
Банально, каждые n минут пытаться создать подключение и ловить exception? А если сервис недоступен в течении часа, то при ежеминутной проверке не повлияет ли такое кол-во эксепшенов на производительность?
...
Рейтинг: 0 / 0
11.10.2011, 00:52
    #37476414
n_string
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка доступности WCF сервиса
Пробовал Ping, но это средство не всегда успешно работает, поэтому все-таки лучше перехватывать CommunicationException и запускать клиента до посинения:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
static void Main(string[] args)
        {
            bool taskPerformed = false;
            int tryCounter = 0;

            while (!taskPerformed)
            {
                MathServiceClient client = new MathServiceClient();

                try
                {
                    client.CallService();
                    
                    taskPerformed = true;
                }
                catch (CommunicationException exception)
                {
                    Console.WriteLine(exception.Message);
                    client.Abort();

                    taskPerformed = false;
                    Thread.Sleep(1000 * tryCounter);
                    tryCounter++;
                }
            }

            Console.WriteLine("\r\nTask successfully performed");
            Console.ReadLine();
        }
...
Рейтинг: 0 / 0
11.10.2011, 11:31
    #37476776
ValeraSmirnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка доступности WCF сервиса
n_string, благодарю за ответ.

А чем не подошел Ping, можете рассказать? И замечаете ли какие то проблемы с производительностью, если пытаться дергать сервис до посинения и получать exception?
...
Рейтинг: 0 / 0
11.10.2011, 16:49
    #37477531
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка доступности WCF сервиса
ValeraSmirnovn_string, благодарю за ответ.

А чем не подошел Ping, можете рассказать? И замечаете ли какие то проблемы с производительностью, если пытаться дергать сервис до посинения и получать exception?

1. пинг может не отвечать , а сервис быть доступным
2. пинг может отвечать , а сервис быть недоступным
...
Рейтинг: 0 / 0
12.10.2011, 04:02
    #37478123
n_string
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка доступности WCF сервиса
ValeraSmirnovИ замечаете ли какие то проблемы с производительностью, если пытаться дергать сервис до посинения и получать exception?Теоретически любой exception может вызвать сбой в работе ОС, особенно если основной поток ожидает результатов работы IO операции. В нативном коде такие операции обернуты в timeout и запускаются в отдельном потоке, поэтому в случае неудачи ОС просто прихлопнет поток и вернет CLR тип ошибки. Сами понимаете, аборт зависшего потока непростая операция, поэтому ничто не гарантирует smooth operation.

На практике же такие ситуации случаются крайне редко, а чтобы избежать тупого повторения запроса, пауза между запросами постоянно увеличивается (посмотрите на приведенный код), т.е. производительность ОС максимально защищена.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проверка доступности WCF сервиса / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]