带参数的katana / owin中间件

时间:2014-04-21 16:19:52

标签: owin katana

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

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题

ContentLength应该在Utf-8中进行评估,如下所示:

Encoding.UTF8.GetBytes(消息)。长度

c#默认使用utf-16编码