在ASP.NET(C#)中创建动态RSS提要页面 - 我是否需要做额外的事情?

时间:2009-11-07 08:07:44

标签: c# asp.net xml iis rss

我希望创建一个动态RSS Feed来表示我网站的内容。目前,我有一个XML文件,其中每个主条目都包含文件的位置,日期和摘要数据。如果我要在ASP.NET中创建这个feed,除了解析XML和输出一些RSS之外,还需要做什么额外的事情吗?例如,我如何能够创建具有不同扩展名的ASP.NET页面,例如标准的RSS文件扩展名?

换句话说,假设我可以获得正确的RSS代码并通过Response.Write输出。虽然使用标准的RSS文件扩展名,但我如何确保它仍然作为ASP.NET应用程序运行?

3 个答案:

答案 0 :(得分:5)

如果您使用的是.Net Framework 3.5,那么可以很好地生成RSS和Atom。检查以下MSDN页面。

http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx

或者您可以手动创建它,您必须实现RSS规范。

http://cyber.law.harvard.edu/rss/rss.html

或者使用某些.NET工具,例如RSS.NET。

http://www.rssdotnet.com/

要处理您自己的扩展并生成RSS,您必须创建一个HttpHandler并在IIS应用程序映射中添加扩展名。

using System;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Web;
using System.Xml;
using System.Xml.Linq;

public class RSSHandler : IHttpHandler
{

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        XDocument xdoc = XDocument.Load("Xml file name");

        SyndicationFeed feed = new SyndicationFeed(from e in xdoc.Root.Elements("Element name")
                                                   select new SyndicationItem(
                                                       (string)e.Attribute("title"),
                                                       (string)e.Attribute("content"),
                                                       new Uri((string)e.Attribute("url"))));

        context.Response.ContentType = "application/rss+xml";

        using (XmlWriter writer = XmlWriter.Create(context.Response.Output))
        {
            feed.SaveAsRss20(writer);
            writer.Flush();
        }
    }

}

这只是一个示例,您必须设置其他一些Feed设置。

答案 1 :(得分:3)

尝试制作自定义HTTPHandler。在web.config中为此处理程序添加自定义扩展,然后将其添加到IIS,以便IIS可以提供​​此功能。

此HTTPHandler将从XML执行RSS处理,并可将输出写入您的响应。

这可能会有所帮助: http://msdn.microsoft.com/en-us/library/ms972953.aspx

答案 2 :(得分:1)

它真的必须是RSS扩展吗?为什么不是ASPX扩展,如果它是ASP.NET?

这是一个输出feed的好指南,只需遍历你的XML(而不是本例中的SQL),你应该没问题。

http://www.geekpedia.com/tutorial157_Create-an-RSS-feed-using-ASP.NET-2.0.html