powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как грамотно завершить работу self hosted wcf службы?
4 сообщений из 4, страница 1 из 1
Как грамотно завершить работу self hosted wcf службы?
    #39199194
iluxa1810
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим есть wcf служба, которая хостится в win service.

Если пользователь решит вырубить сервис, то как мне грамотно завершить работу wcf службы?

Допустим, один юзер вызвал метод по перемещению файлов, другой юзер что-то делает с базой.

Если без логики завершить работу Win Service, то это приведет к необратимым последствиям.
...
Рейтинг: 0 / 0
Как грамотно завершить работу self hosted wcf службы?
    #39199677
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iluxa1810Допустим есть wcf служба, которая хостится в win service.

Если пользователь решит вырубить сервис, то как мне грамотно завершить работу wcf службы?

Допустим, один юзер вызвал метод по перемещению файлов, другой юзер что-то делает с базой.

Если без логики завершить работу Win Service, то это приведет к необратимым последствиям.

все зависит от вашей логики, транзакция в базу откатится, копирование файлов будет оборвано, так тоже бывает.
А если хотите дать завершиться операциям (если они завершатся(!)), делайте какие-то флаги и не давайте "вырубить" сервис злому юзеру.
...
Рейтинг: 0 / 0
Как грамотно завершить работу self hosted wcf службы?
    #39200080
iluxa1810
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,

А как мне сообщить WCF, что хост завершается и нужно проделать некоторые действия?
...
Рейтинг: 0 / 0
Как грамотно завершить работу self hosted wcf службы?
    #39200464
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iluxa1810,

Не очень понял, сути проблемы.
Если вы вызываете у WCF хоста (который ServiceHost) метод Close() , то у вас происходит следующее:
- запрещаются новые подключения
- ожидается завершается всех запущенных ранее запросов, а также тех, которые стоят в очереди на выполнение (завершится они могут как потому, что отработают, так и потому, что истек таймаут.

Метод Close(), как понятно - это блокирующий метод.

Вы можете управлять этим процессом, а именно:
- Указать таймаут на ожидание
- Использовать асинхронную версию BeginClose()

Собственно, для Windows Service наилучшая стратегия - использовать BeginClose(), и пока не закончится закрытие, периодически продлевать время остановки самого сервиса, вызывая RequestAdditionalTime()
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как грамотно завершить работу self hosted wcf службы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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