Pergunta

Eu estou tentando gerar um sitemap.xml no voar para um determinado asp.net website.

Eu encontrei algumas soluções:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs está funcionando muito bem, mas parece um pouco inativo agora e é impossível para personalizar a "prioridade" e o "changefreq" tags de cada página, todos eles herdam o mesmo valor a partir do arquivo de configuração.

Quais são as soluções que vocês usam?

Foi útil?

Solução

Normalmente você vai usar um Manipulador de HTTP para este.Atendendo a uma solicitação para...

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

...o processador irá responder com um formatados em XML sitemap.Se o sitemap é gerado em tempo real, a partir de um banco de dados, ou algum outro método é o HTTP implementação do Manipulador.

Aqui está a cerca de como ficaria:

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

Este código pode ser melhorado, mas essa é a idéia básica.

Outras dicas

Manipulador personalizado para gerar o sitemap.

Usando ASP.NET MVC apenas começou uma rápida bits de código usando .NET geração de XML library e, em seguida, apenas passou para uma página de exibição que tinha um XML controle sobre ele.No code-behind me amarrei o controle com o ViewData.Isso parecia para substituir o comportamento padrão do modo de exibição de páginas para apresentar um cabeçalho diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top