Я использую RestSharp для работы с некоторыми REST API.
Используется политика кэширования запросов по умолчанию. Заголовки со стороны сервера в порядке. У меня другое поведение в разных средах.
Когда я звоню из консольного приложения - RestSharp делает запрос и правильно кэширует успешный ответ в папке временных файлов пользователя в Интернете (C: \ Users \ namehere \ AppData \ Local\ Microsoft \ Windows \ Temporary Internet Files) внутри одной из случайно выбранных папок.
Когда один и тот же код развертывается и выполняется на сервере, внутри некоторых служебных файлов кэша создаются не в случайно именованных папках, а вСама «Временные интернет-файлы». И они удаляются, как только процесс закрывает файл, поэтому они не могут быть повторно использованы в качестве кеша.
Если я запускаю одно и то же приложение на сервере, используя «runas / profile / user: serviceuser ...», то файлы кеша создаютсяточно так же, как на моей локальной машине - в случайно названных папках и не удаляется. Они работают должным образом.
Я проверил действия по созданию / удалению файлов с помощью инструмента ProcessMonitor на сервере. Файлы кэша удаляются, как только процесс закрывает их.
Итак, вопросы:
- Использует ли RestSharp кэширование WinINet под капотом?
- Если да - естьон использует тот же WinINet кеширование на сервере, когда код выполняется из службы (я читал, что WinINet не поддерживается на сервере, но что это значит, код работает там)?
- Почему файлы кэша удаляются немедленнопосле того, как они созданы на сервере, но при локальном запуске - они остаются на месте и могут быть повторно использованы в качестве кэша?
- В чем может быть причина такого различного поведения, что проверять?
- Как процесс получения информации о том, какую папку кэша используют, из какой части реестра?
Я надеялся получить кеширование из коробки с помощью RestSharp, но, похоже, это не так просто, и этодля меня странно расхождение между консольным приложением и использованием сервиса.