Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Owin IAppBuilder.Map意外处理所有请求_C#_Asp.net_Owin_Katana - Fatal编程技术网

C# Owin IAppBuilder.Map意外处理所有请求

C# Owin IAppBuilder.Map意外处理所有请求,c#,asp.net,owin,katana,C#,Asp.net,Owin,Katana,考虑上面的管道配置 在我的startup类中,我想将“SomeSubPath”映射到独占中间件处理程序。即,以“/SomeSubPath”开头的请求应由某个专用中间件处理,而所有其他请求应由管道的其余部分处理。我正在使用找到的IAppBuilder.Map扩展名。令我惊讶的是,中间件正在拦截所有请求,阻止应用程序的其余部分处理这些请求 为什么会这样 我怎样才能做到这一点 像这样更改此块。在Map中,您使用的是app而不是application string path = "/SomeSubPa

考虑上面的管道配置

在我的startup类中,我想将“SomeSubPath”映射到独占中间件处理程序。即,以“/SomeSubPath”开头的请求应由某个专用中间件处理,而所有其他请求应由管道的其余部分处理。我正在使用找到的IAppBuilder.Map扩展名。令我惊讶的是,中间件正在拦截所有请求,阻止应用程序的其余部分处理这些请求

  • 为什么会这样
  • 我怎样才能做到这一点

像这样更改此块。在
Map
中,您使用的是
app
而不是
application

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();
            });

有人吗?我正在努力解决这个问题:/
       app.Map(new PathString(path),
        (application) =>
        {
            application.Run((ctx) =>
            {
                Debug.WriteLine("{0} : {1}", path, ctx.Request.Path);

                return Task.FromResult(0);
            });
        });