Blazor SSR-使用docker路由到其他页面时浏览器错误(https-portal)

时间:2019-08-19 15:03:32

标签: docker .net-core docker-compose blazor-server-side

我目前正在尝试在Docker中运行.NET Core 3(预览版8)SSR-blazor项目。在开始导航之前,页面似乎加载正常,使用NavLink,这在浏览器控制台中给我以下错误:

  

错误:在调用“ NotifyLocationChanged”时发生异常   程序集“ Microsoft.AspNetCore.Components.Server”。更多细节   打开“ CircuitOptions.DetailedErrors”中的详细异常

我当前的docker-compose.yml文件如下:

version: '2'

services:

  app:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - "database"

  database:
    image: "mcr.microsoft.com/mssql/server:2017-latest-ubuntu"
    environment:
      MSSQL_SA_PASSWORD: "Hidden"
      ACCEPT_EULA: "Y"

  https-portal:
    image: steveltn/https-portal:1
    ports:
      - '80:80'
      - '443:443'
    links:
      - app
    restart: always
    environment:
      - WEBSOCKET: true
      - DOMAINS: 'somesite.com -> http://app:5000'
#      - STAGE: 'local'
      - STAGE: 'staging'
#      - STAGE: 'production'

我认为这与- WEBSOCKET: true环境或代码中的app.UseForwardedHeaders();有关。但是结果是一样的。

编辑1:

所以我在启动时添加了以下代码,它开始工作:

services.Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardedHeaders =
                ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-2.2那里得到它

编辑2:

没关系,它停止工作了。似乎只能在第一次或长时间不活动后才能使用。在那之后,我得到了同样的错误。

编辑3:

因此,我创建了一个具有相同docker结构的全新Blazor(预览版8)项目,很奇怪的是它在该项目中有效。我尝试将这个新项目与我的(在预览5中制作,但随着时间的推移进行了升级)进行比较,但是,我发现没有什么重大的不同。我目前正在将一些旧代码迁移到新项目中,然后查看它何时不再起作用。我希望这能给我答案,因为我现在绝对迷失了。

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。所以我必须将以下内容添加到我的启动中

app.Use((ctx, next) =>
{
    ctx.Request.Scheme = "https";
    return next();
});

现在路由完美运行