SignalR(在 docker 容器上)升级到 .NET8 后网关错误

问题描述 投票:0回答:1

因此,我们刚刚将 .NET 6 项目升级到 .NET 8,除了 SignalR 连接之外,一切都运行良好。

我们在 kubernetes 集群上运行,并有一个入口和服务(未更改)来连接到运行 .NET 应用程序的 docker 容器。

当我们运行 .NET 6 容器时,一切工作正常,但是一旦我们部署 .NET 8 容器,HubConnection.StartAsync(来自其他应用程序)就会抛出:

“响应状态代码并不表示成功:502(错误网关)。”

有谁知道 .NET 8 或 docker 容器 (mcr.microsoft.com/dotnet/aspnet:8.0) 与 .NET 6 相比是否发生了某些变化,使其不会公开端口或其他会阻止通信的内容?

我们尝试在本地主机上运行它,然后它可以连接。 而且.NET 6应用程序仍然可以正常运行,所以这让我相信这不是kubernetes入口或服务,而是容器中的东西。

Dockerfile:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base

FROM base AS final
WORKDIR /app
COPY .  .

ENV TZ="Europe/Amsterdam"

EXPOSE 80

ENTRYPOINT ["dotnet", "application.dll"]
.net docker kubernetes signalr
1个回答
0
投票

Microsoft 更新了 Dotnet 8 映像以默认使用端口 8080 和 8081

Andrew Lock 的博客上有一篇关于它的精彩文章:https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/

当我们在 RC1 时间左右开始迁移时,我在类似的情况下遇到了类似的问题。更新相关服务转发到8080/81端口后,一切又恢复了活力。

但是,我认为 GA 版本中可能会出现类似的问题(我通过搜索我的答案找到了你的问题!)

© www.soinside.com 2019 - 2024. All rights reserved.