RSS20FeedFormatter está produzindo RSS que não está bem formado
-
25-09-2019 - |
Pergunta
Estou usando asp.net MVC2 e tenho um feed RSS para o meu blog. Estou usando a funcionalidade pronta para uso em System.Servicemodel.Syndication e RSS20FeedFormatter.
O feed funciona bem e pode ser lido pelo Outlook e todos os navegadores que eu tentei. No entanto, quando enviei o feed RSS ao Google como um mapa do site, recebi erros de validação.
Por curiosidade, validei o feed com o FeedValidator, que relatou problemas semelhantes.
Alimentação: http://www.chrispfarrell.com/blog/rss
Se você aparecer este feed em feedValidator.org, verá os problemas.
Realmente não existe código personalizado para gerar o RSS.
A ação do controlador é
public FeedResult Rss()
{
const string baseUrl = "http://www.chrispfarrell.com/Blog/View/";
var blogs = _blogService.GetBlogs();
var feed = new SyndicationFeed
{
Title = new TextSyndicationContent("Chris Farrell"),
Copyright = new TextSyndicationContent("Copywrite Chris Farrell 2010")
};
var postItems = blogs.Take(25)
.Select(p => new SyndicationItem(p.Title,p.Body,new Uri(baseUrl + p.BlogUrl))
{
PublishDate = p.DateCreated,
});
feed.Items = postItems;
return new FeedResult(new Rss20FeedFormatter(feed));
}
Algum comentário sobre por que o feed não seria válido e bem formado? Posso postar o código para feedResult, se necessário, mas é um código bastante padrão.
Obrigado
Chris Farrell
Solução
O feed estava faltando ou003Clink> elemento na raizu003Cchannel> elemento.
Em vez de usar um inicializador de objetos, estou usando um dos construtores agora que aceita 3 argumentos (título de alimentação, descrição e link alternativo de alimentação). O terceiro argumento para o feed alternativo link renderiza no canal raizu003Clink> tag que torna o feed agora válido.