asp.net - C# (ASP.net) 中 RSS 提要的最佳实现

标签 asp.net performance architecture rss syndication

我有一个需要提要的网络应用程序(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/

相关文章:

javascript - jQuery 在 DOM 中使用索引来提高性能吗?

c++ - 现代 C++ 中的内联方法和代码可读性

c# - Response.OutputStream.Write 在结果文件中添加 html 代码的问题

c# - 使用 WPF 绘制 3D 线

oop - 关于如何进行 OOP 设计的建议

architecture - 进入应用程序架构师级别

来自服务的 Android StartActivtyForResult()

jquery - ASP.net FileUploader 控件 - 使用 jQuery 单击

javascript - 如何在页面加载和自动点击时获取警报消息内容

asp.net - jQuery UI + ASP.NET UpdatePanel - 值得吗?