В ASP.NET действительно ли это возможно к выходному кэшу именем хоста? т.е. varybyhost или varbyhostheader?

У меня есть веб-сайт, который имеет много заголовков хоста. Тема и данные зависят от заголовка хоста, и различные хосты загружают различно выглядящие сайты.

Поэтому давайте предположим, что у меня есть веб-сайт под названием "Нечто", которое возвращает результаты поиска. Тот же код выполняет оба упомянутые ниже сайта. Это - тот же сервер и веб-сайт (использующий Заголовки Хоста)

  1. www.foo.com
  2. www.foo.com.au

Теперь, если я перехожу в .com, сайт является тематическим в синем. Если я перехожу в .com.au сайт, это тематически в красном.

И данные отличаются для того же результата поиска, на основе имени хоста: американские результаты для .com и австралиец заканчивается для .com.au.

Если я хочу использовать OutputCaching, это может быть обработано и разделено именем хоста?

Я - озабоченность, которая после человека переходит в .com сайт, (правильно возврат американских результатов), что второй человек, посещающий .com.au сайт и поиск тех же данных получат тему и результаты для .com сайт.

Действительно ли кэширование возможно?

7
задан Michael 3 May 2017 в 19:13
поделиться

1 ответ

Проверьте параметр VaryByCustom в директиве OutputCache .

Чтобы определить, что происходит при вызове VaryByCustom, вам необходимо переопределить метод GetVaryByCustomString:

public override string GetVaryByCustomString(HttpContext context, string custom)
{
    if(custom == "Your_Custom_Value")
    {
        // Do some validation.
        // Return a string for say, .com, or .com.au

    }
    return String.Empty;
}

Ключ должен вернуть строковое значение для каждого экземпляра, который вы хотите кэшировать. В вашем случае переопределенный метод должен будет удалить часть «.com» или «.com.au» из URL-адреса и вернуть ее. Каждое различное значение создает различный кеш.

HTH

4
ответ дан 6 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

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