我尝试构建参数化的中间件,但我只得到http 504错误。没有参数
,此代码可以正常工作任何想法?
public void Configuration(IAppBuilder app)
{
app.Use<MyMiddleware>("Hello");
}
class MyMiddleware : OwinMiddleware
{
public MyMiddleware(OwinMiddleware next, string message)
: base(next)
{
Message = message;
}
public string Message { get; set; }
public override async Task Invoke(IOwinContext context)
{
context.Response.ContentLength = Message.Length;
context.Response.ContentType = "text/html";
await context.Response.WriteAsync(Message);
await Next.Invoke(context);
}
}
答案 0 :(得分:0)
好的,我发现了问题
ContentLength应该在Utf-8中进行评估,如下所示:
Encoding.UTF8.GetBytes(消息)。长度
c#默认使用utf-16编码