小编Sal*_*des的帖子

Nginx proxy_pass 如何传递路由参数

我正在尝试对内部 docker 容器进行 api 调用,但对于每个请求 url,我都必须在 Nginx 配置中创建 proxy_pass。我读过一些文章,最后的斜杠应该可以将某些 url 之后的所有内容传递到 proxy_pass。

阅读此处(重定向表)


例子

www.example.com/api -> 重定向到正确的端点

www.example.com/api/2020 -> 这不会重定向到 http://api/2020

配置

location = /api/ {
   proxy_pass http://api/;
}
Run Code Online (Sandbox Code Playgroud)

那么为什么这个配置不将 2020“参数”传递到 api 端点呢?当我进行如下配置时它会起作用:

location = /api/2020 {
   proxy_pass http://api/2020;
}
Run Code Online (Sandbox Code Playgroud)

但问题是它是一个参数,所以它可能是任何数字,如何解决这个问题?

我读过其他帖子,但我再次问这个问题,以便更广泛地了解参数传递的可能性。真的有必要为此使用正则表达式吗?

nginx endpoint docker nginx-reverse-proxy nginx-config

2
推荐指数
1
解决办法
8405
查看次数

Blazor 如何修复 IMediator InvalidOperationException 无法从根提供程序解析,因为它需要范围服务 IDbContext

我创建了一个应用程序程序集,并引用了 REST-Api 和 Blazor 应用程序。REST-Api 工作正常,但 Blazor 应用程序出现以下错误:

InvalidOperationException:无法从根提供程序解析“MediatR.IRequestHandler`2[Application.Customers.Queries.GetCustomersList.GetCustomersListQuery,Application.Common.Viewmodels.CustomerListVm]”,因为它需要范围服务“Application.Common.Interfaces.IWegisterDbContext”。Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(类型 serviceType、IServiceScope 范围、IServiceScope rootScope)

InvalidOperationException:为 MediatR.IRequestHandler`2[Application.Customers.Queries.GetCustomersList.GetCustomersListQuery,Application.Common.Viewmodels.CustomerListVm] 类型的请求构造处理程序时出错。向容器注册您的处理程序。有关示例,请参阅 GitHub 中的示例。MediatR.Internal.RequestHandlerBase.GetHandler(ServiceFactory工厂)

在下面的代码示例中,我放置了我的 Starup 文件,两个项目都位于同一解决方案中,引用相同的项目。我已经尝试添加授权,但这显然不起作用。我不知道问题是什么,是我遗漏了什么还是这就是 Blazor?两个程序集中的 MediatR 版本相同。

这是我从 REST-Api 启动的:

using Application;
using Application.Common.Interfaces;
using Infrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Persistence;
using WebApi.Services;

namespace Wegister.WebApi
{
    public class Startup
    {
        public IWebHostEnvironment Environment { get; }
        public IConfiguration Configuration { get; }

        public Startup(IConfiguration configuration, IWebHostEnvironment environment)
        {
            Configuration = configuration;
            Environment = environment;
        } …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection mediatr asp.net-core blazor

0
推荐指数
1
解决办法
1029
查看次数