У меня есть простой промежуточное программное обеспечение:vNext Owin Middleware
public class MiddlewareInterceptor
{
RequestDelegate _next;
public MiddlewareInterceptor(RequestDelegate next)
{
_next = next;
}
public Task Invoke(HttpContext ctx)
{
ctx.Response.WriteAsync("<h2>From SomeMiddleWare</h2>");
return _next(ctx);
}
}
И в моем методе Startup.cs Configure, я подключить его следующим образом:
app.UseMiddleware<MiddlewareInterceptor>();
выше строит и приложение, кажется, бежит отлично, но моя точка останова в методе Invoke перехватчика никогда не попадает. Точно так же никогда не бывает выхода. Я тоже пробовал это с Debug.WriteLine
.
Теперь, я попробовал этот метод:
public class MiddlewareInterceptor : OwinMiddleware
{
public MiddlewareInterceptor(OwinMiddleware next) : base(next){}
public override async Task Invoke(IOwinContext context)
{
Debug.WriteLine(context.Request.Uri.ToString());
await Next.Invoke(context);
}
}
И в моем методе Startup.cs Configure, я подключить его следующим образом:
app.Use(next => new MiddlewareInterceptor(next).Invoke);
К сожалению, конструктор базового OwinMiddleware
ищет следующий OwinMiddleware
в качестве параметра, в отличие от старых. RequestDelegate
. Так что мой app.Use
экземпляр моего MiddlewareInterceptor
терпит неудачу, потому что next
имеет тип RequestDelegate
.
Наконец, я попробовал функцию встроенной непосредственно в методе Configure который также никогда не попадет в точке останова:
app.Use(async (ctx, next) =>
{
System.Diagnostics.Debug.WriteLine("Hello");
await next();
});
Так как он стоит, кажется, что я не могу сделать основной промежуточный перехватчик с помощью Owin. Что мне не хватает?
http://blogs.msdn.com/b/webdev/archive/2014/11/14/katana-asp-net-5-and-bridging-the-gap.aspx – davidfowl