我有一个需要提要的网络应用程序(asp.net)。所以我使用了 System.ServiceModel.Syndication
命名空间来创建创建“新闻”的函数。问题是每次有人调用它时它都会执行,我应该使用它来创建一个 xml 文件并使我的 rss url 指向该文件吗?
最好的方法是什么?
编辑:也许这就是我错的地方。我没有使用处理程序...我只是使用 WCF 服务返回带有数据的 Rss20FeedFormatter。
最佳答案
过去,当我实现 RSS 时,我将 RSS 数据缓存在 HttpContext.Current.Cache 中。
RSS 数据通常不需要经常更新(例如,一分钟一次就足够了),因此您只需每分钟实际访问一次数据库,而不是每次有人请求您的 RSS 数据时。
以下是如何使用缓存的示例:
// To save to the cache
HttpContext.Current.Cache.Insert("YourCachedName", pObjectToCache, null, DateTime.UtcNow.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
// To fetch from the cache
YourRssObject pObject = HttpContext.Current.Cache[("YourCachedName"] as YourRssObject : null;
您还可以在 ashx 中设置以下内容:
context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
这将使您的 RSS 页面提供缓存版本,直到它过期。这会占用更少的资源,但如果您有其他使用 RSS 数据访问层调用的内容,则不会缓存该数据。
您还可以通过设置根据您的 RSS 可能接收的查询参数使其缓存:
context.Response.Cache.VaryByParams["YourQueryParamName"] = true;
关于asp.net - C# (ASP.net) 中 RSS 提要的最佳实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922393/