Я занимаюсь разработкой веб-сайта, на котором каждый пользователь ({guest, loggedIn}) может просматривать [N] страниц в разных культурах ({en-US ...}).Я использую GetVaryByCustomString для обработки кэширования для каждой страницы:
Public Overrides Function GetVaryByCustomString(ByVal currentContext As HTTPContext, ByVal customArgs As String) As String
Select Case customArgs
Case "userAndCulture"
Return String.Format("{0}{1}", Languages.getLanguageID(), User.getUserID(0))
End Select
Return MyBase.GetVaryByCustomString(currentContext, customArgs)
End Function
Примечание: getUserID () имеет по умолчанию «returnValueWhenNull» DBNull.Value (он используется для SQL для большей части работы), поэтому яЯ посылаю 0 (ноль), чтобы у всех гостей была одна и та же страница.
Однако мой главный вопрос: такой механизм не убьет сервер с точки зрения памяти?Я имею в виду, разве нет потенциальных [loggedInUsersCount] * [CultureCount] * [pagesCount] страниц?
Еще одно примечание: страницы кэшируются только в памяти сервера