Menghasilkan sitemap on the fly

I'm mencoba untuk menghasilkan sitemap.xml on the fly untuk tertentu asp.net website.

Saya menemukan beberapa solusi:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs bekerja besar tapi tampaknya sedikit tidak aktif sekarang dan itu's tidak mungkin untuk personalisasi "prioritas" dan "changefreq" kategori masing-masing dan setiap halaman, mereka semua mewarisi nilai yang sama dari file konfigurasi.

Solusi apa yang kalian gunakan?

Mengomentari pertanyaan (1)
Larutan

Biasanya anda'll menggunakan HTTP Handler untuk ini. Mengingat permintaan untuk...

...handler anda akan merespon dengan format XML sitemap. Apakah itu sitemap yang dihasilkan pada terbang, dari database, atau beberapa metode lain adalah untuk Handler HTTP implementasi.

Berikut ini's kira-kira apa yang akan terlihat seperti:

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();
}

Kode ini dapat ditingkatkan tetapi yang's ide dasar.

Komentar (0)

Custom handler untuk menghasilkan sitemap.

Komentar (1)

Menggunakan ASP.NET MVC hanya melecut cepat dari kode yang menggunakan .NET XML generasi perpustakaan dan kemudian hanya berlalu untuk melihat halaman yang telah XML kontrol pada hal. Dalam kode di belakang saya terikat kontrol dengan ViewData. Ini tampaknya mengesampingkan perilaku default tampilan halaman untuk menampilkan header yang berbeda.

Komentar (0)