Routing 使服务器在接受Blazor调用的同时使用请求管道

Routing 使服务器在接受Blazor调用的同时使用请求管道,routing,httpclient,middleware,pipeline,blazor,Routing,Httpclient,Middleware,Pipeline,Blazor,我正在使用浏览器托管的Blazor,在我的服务器项目中,我想使用其他中间件。 问题是: 如何使我的服务器响应Blazor调用并使用请求管道进行api调用 代码 服务器启动 通过上面的代码,我可以访问Blazor页面,也可以通过指定的路径(在我们的例子中是myCustomRoute)向Postman发送请求,但我仍然没有得到Postman的响应。 我仍然不明白的是,为什么我不能分支我的管道应用程序。映射并使用Blazor扩展,因为它们是不同的关注点 范例 为什么这不起作用: app.Map

我正在使用浏览器托管的Blazor,在我的服务器项目中,我想使用其他中间件。 问题是:

如何使我的服务器响应Blazor调用并使用请求管道进行api调用

代码

服务器启动

通过上面的代码,我可以访问Blazor页面,也可以通过指定的路径(在我们的例子中是myCustomRoute)向Postman发送请求,但我仍然没有得到Postman的响应。 我仍然不明白的是,为什么我不能分支我的管道应用程序。映射并使用Blazor扩展,因为它们是不同的关注点

范例 为什么这不起作用:

    app.Map("myroute1",...);
    app.Map("myroute2",...);
    app.UseBlazor(...);
app.Map("myroute1",...);
app.Map("myroute2",...);
app.UseBlazor(...);
这是有效的:

  app.Use(async(x,con)=>{
                  app.Map(route1,...);
                  app.Map(route2....);
               });
  app.UseBlazor(....)
 app.Use(async(x,con)=>{
              app.Map(route1,...);
              app.Map(route2....);
           });
 app.UseBlazor(....)
试试这个:

删除app.Map/route,x=>{-}

并将代码更改为以下内容:

var response = await this.client.PostAsync("/route",
                                   content);
显然,我让middleware-s与Blazor一起工作时受到以下限制:

在请求管道中使用Blazor之前使用中间件

对于自定义路由,扩展名app.maprote,x=>。。。不适用于Blazor,因此我必须将其包装在应用程序中。请使用扩展名

代码

这是有效的:

  app.Use(async(x,con)=>{
                  app.Map(route1,...);
                  app.Map(route2....);
               });
  app.UseBlazor(....)
 app.Use(async(x,con)=>{
              app.Map(route1,...);
              app.Map(route2....);
           });
 app.UseBlazor(....)

这段代码应该做什么,你是不是先在没有它的情况下运行你的应用程序:app.Map/route,x=>{-}我在没有使用任何中间件的情况下运行了代码,但我得到了相同的错误。客户端中的方法只是在指定的路由上使用HttpClient对服务器上的对象进行POST。所以你是说我在使用Blazor时不能使用中间件/管道app.Map`?
 app.Use(async(x,con)=>{
              app.Map(route1,...);
              app.Map(route2....);
           });
 app.UseBlazor(....)