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