кеширование сгенерированного xml в asp.net - PullRequest
0 голосов
/ 01 сентября 2010

Я генерирую XML с использованием linq to XML (XElements и т. Д.) Из базы данных и с определенным временем.Самая большая проблема заключается в том, что этот XML не будет меняться так часто, поэтому я пытаюсь кэшировать его в коде позади.В основном мой код выглядит примерно так:

XDocument x = new XDocument(
    new XElement(ns + "SomeRandomDate", DateTime.Now())
);

Response.Clear();
Response.ContentType = "application/xml";
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(false);
Response.Cache.VaryByParams["Category"] = true;
x.Save(Response.Output);
Response.End();

Моя самая большая проблема заключается в том, что это, похоже, не работает.Есть идеи?

1 Ответ

3 голосов
/ 01 сентября 2010

Почему бы не использовать HTTP-кеш?

XDocument x = (XDocument)HttpContext.Current.Cache[ns + "SomeRandomDate"];
if (x == null)
{
  x = new XDocument(new XElement(ns + "SomeRandomDate", DateTime.Now()));
  HttpContext.Current.Cache.Insert(ns + "SomeRandomDate", x, null,
    DateTime.Now.AddHours(12d), Cache.NoSlidingExpiration);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...