.net - 即时生成站点地图

标签 .net asp.net sitemap

我正在尝试为特定的 asp.net 网站动态生成 sitemap.xml。
我找到了几个解决方案:

  • chinookwebs
  • cervoproject
  • newtonking

  • Chinookwebs 运行良好,但现在似乎有点不活跃,并且无法个性化每个页面的“priority”和“changefreq”标签,它们都从配置文件中继承相同的值。
    你们使用什么解决方案?

    最佳答案

    通常你会使用 HTTP Handler为了这。鉴于请求...

    http://www.yoursite.com/sitemap.axd



    ...您的处理程序将使用格式化的 XML 站点地图进行响应。该站点地图是动态生成的,还是从数据库生成的,还是其他方法取决于 HTTP 处理程序的实现。

    这大概是它的样子:
    void IHttpHandler.ProcessRequest(HttpContext context)
    {
        //
        // Important to return qualified XML (text/xml) for sitemaps
        //
        context.Response.ClearHeaders();
        context.Response.ClearContent();
        context.Response.ContentType = "text/xml";
        //
        // Create an XML writer
        //
        XmlTextWriter writer = new XmlTextWriter(context.Response.Output);
        writer.WriteStartDocument();
        writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
        //
        // Now add entries for individual pages..
        //
        writer.WriteStartElement("url");
        writer.WriteElementString("loc", "http://www.codingthewheel.com");
        // use W3 date format..
        writer.WriteElementString("lastmod", postDate.ToString("yyyy-MM-dd"));
        writer.WriteElementString("changefreq", "daily");
        writer.WriteElementString("priority", "1.0");
        writer.WriteEndElement();
        //
        // Close everything out and go home.
        //
        result.WriteEndElement();
        result.WriteEndDocument();
        writer.Flush();
    }
    

    这段代码可以改进,但这是基本思想。

    关于.net - 即时生成站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336/

    相关文章:

    ASP.NET 下拉菜单项颜色

    sitecore - 搜索引擎和 XML 站点地图

    c# - WCF 和 <identity impersonate ="true"/>

    .net - 中继访问被拒绝,system.net.mail

    c# - 如何在 system.array - C# 中保留 null?

    asp.net - 'ModelClientValidationRule' 类型存在于两个 dll 中

    sql - ASP.NET 站点地图

    c# - MvcSiteMapProvider——动态节点的子节点不会出现在面包屑或站点地图中

    c# - 获取 Windows 7 的网络状态

    c# - char 160 在我的源代码中意味着什么?