HTTP-запрос в событии SessionEnded не запускается - PullRequest
0 голосов
/ 19 апреля 2020

Я хотел бы сделать HTTP-запрос при выключении системы, выходе из системы или перезагрузке. Для этого я реализовал обработчик для события SystemEvents.SessionEnded:

// main

Microsoft.Win32.SystemEvents.SessionEnded += new SessionEndedEventHandler(Shutdown.ProcessExit);

// Класс отключения

public static void ProcessExit(object sender, EventArgs e){
  File.WriteAllText("path","ProcessExit fired")
  string jsonString = "{}";
  string url= "localurl";
  using (var client = new HttpClient()){
    StringContent stringContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
    var result = await client.PostAsync(url, stringContent);
  }
}

К моему удивлению, запрос http никогда не срабатывает, как видно из журналов доступа к серверу. Как правильно подать запрос HTTP, когда компьютер выключен? Я могу подтвердить, что событие происходит, потому что запись в ProcessExit успешна, поэтому проблема связана исключительно с выполнением http-запроса.

1 Ответ

0 голосов
/ 19 апреля 2020

Лучшее решение, которое я тестировал снова и снова, и оно отлично работает, - это создание запланированной задачи для события с идентификатором 1074 и запуск пользовательского приложения:

Добавление нового триггера для типа события Basi c:

Журнал : Система

Источник : Пользователь32

EventID : 1074

И приведите ваше приложение в действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...