Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET(C#)中创建动态RSS提要页面-我需要做其他事情吗?_C#_Asp.net_Xml_Iis_Rss - Fatal编程技术网

在ASP.NET(C#)中创建动态RSS提要页面-我需要做其他事情吗?

在ASP.NET(C#)中创建动态RSS提要页面-我需要做其他事情吗?,c#,asp.net,xml,iis,rss,C#,Asp.net,Xml,Iis,Rss,我希望创建一个动态RSS提要来表示我的站点内容。目前,我有一个XML文件,其中每个主条目都有文件位置、日期和摘要的数据。如果我要在ASP.NET中创建这个提要,除了解析XML和输出一些RSS之外,我还需要做其他事情吗?例如,如何创建具有不同扩展名(如标准RSS文件扩展名)的ASP.NET页面 换句话说,假设我可以获得正确的RSS代码并通过Response.Write输出它。如何确保它仍然可以作为ASP.NET应用程序使用,尽管使用标准的RSS文件扩展名?它真的必须是RSS扩展名吗?如果是ASP.

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


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

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

这里有一个很好的输出提要的指南,只需循环使用XML(而不是本例中的SQL),就可以了


试着制作一个定制的HTTPHandler。在web.config中将自定义扩展添加到此处理程序,然后将其添加到IIS,以便IIS可以提供此服务

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

这可能会有所帮助:

如果您使用的是.Net Framework 3.5,那么有一个很好的工具可以生成RSS和Atom。查看以下MSDN页面

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

或者使用一些.NET工具,如RSS.NET

为了处理您自己的扩展并生成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();
        }
    }

}

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

看看我类似的问题——由Marc Gravell回答,他建议使用“ashx”处理程序选项。