Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 动态生成站点地图_.net_Asp.net_Sitemap - Fatal编程技术网

.net 动态生成站点地图

.net 动态生成站点地图,.net,asp.net,sitemap,.net,Asp.net,Sitemap,我正在尝试为特定的asp.net网站动态生成sitemap.xml 我找到了几个解决方案: Chinookwebs工作得很好,但现在似乎有点不活跃,不可能个性化每个页面的“priority”和“changefreq”标记,它们都从配置文件继承相同的值 你们使用什么解决方案?自定义处理程序生成站点地图 使用ASP.NET MVC只是使用.NET XML生成库快速编写了一段代码,然后将其传递给一个带有XML控件的视图页面。在后面的代码中,我将控件与ViewData绑定。这似乎覆盖了视图页面的默

我正在尝试为特定的asp.net网站动态生成sitemap.xml

我找到了几个解决方案:

  • Chinookwebs工作得很好,但现在似乎有点不活跃,不可能个性化每个页面的“priority”和“changefreq”标记,它们都从配置文件继承相同的值


    你们使用什么解决方案?

    自定义处理程序生成站点地图

    使用ASP.NET MVC只是使用.NET XML生成库快速编写了一段代码,然后将其传递给一个带有XML控件的视图页面。在后面的代码中,我将控件与ViewData绑定。这似乎覆盖了视图页面的默认行为,以显示不同的标题。

    通常您会使用一个。给出了一个请求

    …处理程序将使用格式化的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();
    }
    

    这段代码可以改进,但这是最基本的想法。

    处理程序会处理对应用程序的每个http请求,并动态重新生成sitemap.xml,这就是你的意思吗?下面是另一篇文章,介绍了实现这一点的代码: