Платформа.NET выставляет классы, которые обрабатывают syndation: SyndicationFeed и т.д. Так вместо того, чтобы делать рендеринг себя или пользование некоторой другой предложенной библиотекой RSS, почему бы не позволить платформе заботиться о нем?
В основном Вам просто нужен следующий пользовательский ActionResult, и Вы готовы пойти:
public class RssActionResult : ActionResult
{
public SyndicationFeed Feed { get; set; }
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "application/rss+xml";
Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);
using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))
{
rssFormatter.WriteTo(writer);
}
}
}
Теперь в Вашем действии контроллера Вы можете простой возврат следующее:
return new RssActionResult() { Feed = myFeedInstance };
существует полный образец на моем блоге в http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/
Ваш вопрос напомнил мне сообщение в блоге Шона Вильдермута, в котором у него возникли проблемы с большими размерами сообщений в приложении Silverlight. Возможно, это поможет вам:
http://wildermuth.com/2009/09/10/Using_Large_Message_Requests_in_Silverlight_with_WCF
Шон говорит:
Уловка состоит в том, чтобы изменить customBinding в web.config, чтобы использовать более крупные значения по умолчанию . Я выбрал 2 МБ, так как это разумный размер. Конечно, установка их на 2 ГБ, как показано выше, будет работать, но это сделает вас более уязвимыми для атак. Выберите размер, который не превышает ваш самый большой запрос, но не слишком велик. Это игра в угадайку. Чтобы установить их, вам нужно добавить их в свой web.config, чтобы поместить их на узел httpTransport:
I think server logs means the tracing and logging files which are created when you turn that on. Here's the MSDN link.
The properties which I run into with WCF that need to have a higher value in the applications I write are maxReceivedMessageSize, maxStringContentLength, maxArrayLength and maxBufferSize. Try to increase them and see what happens. WCF can be a pain to debug as it is fond to swallow exceptions.
Вы можете указать журналы сервера и путь в конфигурации приложения следующим образом
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Critical, Error, Warning"
>
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="F:\log-data\ServiceTrace.svclog"
/>
</listeners>
</source>
</sources>
</system.diagnostics>
Две вещи:
вы можете показать нам конфигурацию на стороне сервера и клиента (только соответствующие разделы - конечные точки, конфигурация привязки)
вы изменили значения на обеих сторонах (клиент и server) ??
Существует множество настроек размера, на которые вы можете влиять ....