Дан 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 сохраняет состояние процесса. Или ссылку где об этом почитать, самостоятельно информации к сожалению не нашел.