string path = "/SomeSubPath";
app.Map(new PathString(path),
(application) =>
{
app.Run((ctx) =>
{
Debug.WriteLine("{0} : {1}", path, ctx.Request.Path);
return Task.FromResult(0);
});
});
app.Use(async (ctx, next) =>
{
var watch = new Stopwatch();
watch.Start();
await next();
watch.Stop();
Debug.WriteLine("Request handled in {0} [ms]", watch.ElapsedMilliseconds);
});
app.Use(async (ctx, next) =>
{
Debug.WriteLine("{0} : {1}", "/", ctx.Request.Path);
await next();
});
考虑上面的管道配置。
在我的创业课程中,我想映射" SomeSubPath"到独家中间件处理程序。 IE浏览器。以" / SomeSubPath"开头的请求应由一些独家中间件处理,而所有其他请求应由管道的其余部分处理。我使用的IAppBuilder.Map扩展名为here。令我惊讶的是,中间件正在拦截所有请求,从而抑制应用程序的其余部分处理这些请求。
答案 0 :(得分:9)
像这样更改此块。在Map
内,您使用app
代替application
。
app.Map(new PathString(path),
(application) =>
{
application.Run((ctx) =>
{
Debug.WriteLine("{0} : {1}", path, ctx.Request.Path);
return Task.FromResult(0);
});
});