0
アクションによって返された応答を読み込み、そこからデータを収集してログに記録するアクションフィルタを作成していますが、応答本文を読み取ることができる場所を見つけることができません。私は、HttpContext内のresponeでプロパティ名OutputStreamにアクセスするために次のコードを試しましたが、LengthプロパティとReadメソッドがこのストリームでサポートされていないというエラーが表示され続けます。MVCでHttpContextの応答本体を読み込みます
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
byte[] buffer = new byte[filterContext.HttpContext.Response.OutputStream.Length];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = filterContext.HttpContext.Response.OutputStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
string html = Encoding.UTF8.GetString(ms.ToArray());
}
}
https://stackoverflow.com/questions/20930453/mvc-filterattribute-to-get-response-lengthヘルプ? – mjwills
いいえ、残念ながら。 – Sisyphus
https://stackoverflow.com/questions/17462995/simple-way-to-calculate-response-length-in-mvc4は助けになりませんでしたか? – mjwills