WebMatrix 3: RSS フィードを出力する(解決編)
執筆日時:
できた!
と思ったけど、Internet Explorer ではちゃんと表示できない。なんか XML が尻切れトンボで出力されておる……
この問題を解決しておきましょう。
初めは、
- 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() かな?)を呼び出しておかなくてはいけないみたい。
無事、すべて出力されたみたい。気をつけよう……