だるろぐ

明日できることは、今日しない。

WebMatrix 3: RSS フィードを出力する(解決編)

f:id:daruyanagi:20130417064526p:plain

できた!

と思ったけど、Internet Explorer ではちゃんと表示できない。なんか XML が尻切れトンボで出力されておる……

WebMatrix 3: RSS フィードを出力する - だるろぐ

この問題を解決しておきましょう。


初めは、

  • Response.Write() になにか制限(タイムアウト、バッファーサイズ)がある
  • Response.End() の使い方が間違ってる

のかなぁ、と思って色々と調べたのだけれど、そうではなさそう。処理に時間がかかっているわけでもないし、出力されるデータのサイズもたいしたことはない。

結局、単に XmlWriter の使い方を間違っているだけだった。

Response.Clear();
Response.ContentType = "application/xml";
feed.SaveAsRss20(writer);
Response.End();

ではなく、

Response.Clear();
Response.ContentType = "application/xml";
    
using (var writer = XmlWriter.Create(Response.Output))
{
    feed.SaveAsRss20(writer);
}
    
Response.End();

と、ちゃんと XmlWriter.Dispose()(実際は、XmlWriter.Close() かな?)を呼び出しておかなくてはいけないみたい。

f:id:daruyanagi:20130418031102p:plain

無事、すべて出力されたみたい。気をつけよう……