Rss20FeedFormatter est produit RSS qui est pas bien formé
-
25-09-2019 - |
Question
J'utilise ASP.Net MVC2 et qui ont un flux RSS pour mon blog. J'utilise de la fonctionnalité de la boîte à System.ServiceModel.Syndication et Rss20FeedFormatter.
L'alimentation fonctionne bien et peut être lu par Outlook, ainsi que tous les navigateurs, je l'ai essayé. Cependant quand je soumettais le flux RSS à Google en tant que plan du site je suis arrivé erreurs de validation.
Par curiosité, je validais l'alimentation avec feedvalidator qui a signalé des problèmes similaires.
Feed: http://www.chrispfarrell.com/Blog/Rss
Si vous sautez dans ce flux à feedvalidator.org vous verrez les problèmes.
Il n'y a vraiment pas de code personnalisé passe pour générer le flux RSS.
L'action du contrôleur est
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));
}
Tous les commentaires quant à la raison pour laquelle l'alimentation ne serait pas valable et bien formé? Je peux poster le code pour FeedResult si nécessaire, mais son code assez standard.
Merci
Chris Farrell
La solution
L'alimentation a été l'élément manquant dans la racine
Au lieu d'utiliser un initialiseur d'objet, je me sers un des constructeurs maintenant qui accepte 3 arguments (titre d'alimentation, la description et pais lien alternatif). Le troisième argument pour le lien alternatif d'alimentation rend dans le canal racine balise qui rend l'alimentation maintenant en cours de validité.