Задать вопрос

Какой механизм поведения AspNet Core в IIS при перезагрузке?

Дан IIS на Windows 10, в нем размещен простой тестовый WebAPI сайт, написанный на Asp Net Core.
Метод контроллера:
[HttpGet()]
[Route("api/exchange/param/{param1}")]
public Answer Param(string param, string param1)
{
    var result = new Answer
    {
        Id = ID,
        Time = DateTime.Now,
        Value = rnd
    };
    return result;
}


Поле ID:
private static long _id;
private static long ID
{
    get
    {
        _id++;
        return _id;
    }
}

Поле rnd аналогично ID только возвращает случайное значение.

Далее имеется сервис который раз в секунду дергает этот АПИ. В результате получаем вот такой ответ:
{
    "id": 163688,
    "time": "2020-02-20T16:42:10.4914933+02:00",
    "value": 728.992299050555
}

Собственно говоря вопрос в том, что после перезагрузки или выключения компьютера (в частности на ночь), id чудесным образом не сбрасывается, что логично предположить для статического поля. Оно нигде не сохраняется и никак не восстанавливается, даже не имеет сеттера. Интересует механизм поведения где, как и главное почему IIS сохраняет состояние процесса. Или ссылку где об этом почитать, самостоятельно информации к сожалению не нашел.
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
@AlexanderKovalenko Автор вопроса
Разобрался в интереснейшем поведении.
Если перед тем как делается "Завершение работы", компьютер побывал во "Сне", состояние процессов запущенных под IIS сохраняется.
Если выполняется "Перезагрузка", то все перегружается как и ожидается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы