あなたはINopStartup.Configure(IApplicationBuilderアプリケーション)
application.Use(async (context, next) =>
{
using (var customStream = new MemoryStream())
{
// Create a backup of the original response stream
var backup = context.Response.Body;
// Assign readable/writeable stream
context.Response.Body = customStream;
await next();
// Restore the response stream
context.Response.Body = backup;
// Move to start and read response content
customStream.Seek(0, SeekOrigin.Begin);
var content = new StreamReader(customStream).ReadToEnd();
// Write custom content to response
await context.Response.WriteAsync(content);
}
});
のカスタム実装では、この
ような何かを試すことができ、あなたのカスタムよりもResultFilterAttribute
public class MyAttribute : ResultFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext context)
{
try
{
var bytes = Encoding.UTF8.GetBytes("Foo Bar");
// Seek to end
context.HttpContext.Response.Body.Seek(context.HttpContext.Response.Body.Length, SeekOrigin.Begin);
context.HttpContext.Response.Body.Write(bytes, 0, bytes.Length);
}
catch
{
// ignored
}
base.OnResultExecuted(context);
}
}
そして結果

が、これは正しい道に入るためにお役に立てば幸いです。
ありがとうございました。うまくいきます(Y) –
このソリューションをnopCommerceで使用すると、問題が発生しています。 _INopStartup.Configure_メソッドでは、** await next()**を最初に呼び出してから**レスポンスストリーム**を復元すると、ユーザー側で画像とスクリプトが読み込まれず、エラーが返されます** Response Content-Length不一致:書き込まれたバイト数が多すぎます** 最初に応答ストリームを復元してからnext()を呼び出すと、** filterContext.HttpContext.Response.Body.Seek()メソッドが見つかりませんでした**。 –