Я использую ASP.Net MVC2 и у меня есть RSS-канал для моего блога. Я использую готовые функциональные возможности в System.ServiceModel.Syndication и Rss20FeedFormatter.
Фид работает нормально и может быть прочитан Outlook, а также любым браузером, который я пробовал. Однако, когда я отправил RSS-канал в Google в качестве карты сайта, я получил ошибки проверки.
Из любопытства я проверил корм с помощью feedvalidator, который сообщил о похожих проблемах.
Подача: http://www.chrispfarrell.com/Blog/Rss
Если вы откроете этот канал на feedvalidator.org, вы увидите проблемы.
На самом деле нет никакого специального кода, генерирующего RSS.
Действие контроллера
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));
}
Есть какие-нибудь комментарии относительно того, почему канал не будет действительным и правильно сформированным? Я могу опубликовать код для FeedResult, если это необходимо, но это довольно стандартный код.
Спасибо
Крис Фаррелл