1

我尝试构建一个参数化中间件,但我只收到 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);
    }
}
4

1 回答 1

0

好的,我发现了问题

ContentLength 应该像这样在 Utf-8 中评估:

Encoding.UTF8.GetBytes(Message).Length

c#默认使用utf-16编码

于 2014-04-24T21:29:20.830 回答