Кэширование сжатых ответов в ASP.NET Core MVCC#

Место общения программистов C#
Ответить
Anonymous
 Кэширование сжатых ответов в ASP.NET Core MVC

Сообщение Anonymous »

Я создаю приложение ASP.NET Core MVC. Я хотел бы обрабатывать кеширование и сжатие по-своему. Прежде всего, я хотел бы использовать свою собственную реализацию кеша (в отличие от собственного кеша MS или кеша Redis) и вручную генерировать ключи кеша на основе запроса. Во-вторых, я хотел бы кэшировать сжатые ответы. То есть мне бы хотелось, чтобы логика в моем приложении работала примерно следующим образом:
  • Получить запрос
  • Обработка авторизации/аутентификации
  • Создание объекта POCO, представляющего запрос
  • Создайте собственный ключ кэша на основе этого объекта, а также ETag, предоставленного браузером

    Есть ли у нас уже кэшированный сжатый ответ для этого ключа кэша, использующий формат сжатия, запрошенный браузером пользователя? Если да, верните его в качестве ответа, и все готово.
  • В противном случае вызовите контроллер MVC как обычно
  • Обработка ошибок
  • Возьмите объект результата, возвращенный контроллером, сериализовать его в JSON
  • Создать полный сжатый ответ на основе этих данных, включая заголовок ETag
  • Кэшируйте его и верните пользователю; двоичный поток, возвращаемый браузеру, идентичен тому, который мы получили бы при попадании в кэш на шаге (5)
Похоже, я смогу сделать это с помощью кэширования вывода:
https://learn.microsoft.com/en-us/aspnet/core/ Performance/caching /output?view=aspnetcore-8.0
К сожалению, я просто не могу придумать правильный способ подключения моего кода к конвейеру — и кажется, что он должен быть, но что бы я ни пытался, я сталкиваюсь с проблемами либо с одной стороны, либо с другой...

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-core-mvc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»