所以我们刚刚将我们的.NET6项目升级到了.NET8,除了SignalR连接之外,一切都运行得很好.

我们在Kubernetes集群上运行,并且有一个入口和服务(没有更改)来连接到运行.NET应用程序的停靠容器.

当我们运行.NET 6容器时,一切都运行得很完美,但是一旦我们部署了.NET 8容器,HubConnection.StartAsync(来自其他应用程序)抛出:

‘响应状态代码不表示成功:502(网关错误).’

有没有人知道.NET8或docker容器(mcr.microsoft.com/dotnet/aspnet:8.0)与.NET6相比是否有什么变化,使得它不会expose 端口或其他会阻止通信的东西?

我们已try 在本地主机上运行它,然后它就可以连接. 此外,.NET6应用程序仍然可以正常运行,这让我相信它不是Kubernetes入口或服务,而是容器中的某个东西.

文档文件:

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"]

推荐答案

默认情况下,Microsoft将DotNet8镜像更新为使用端口8080和8081

安德鲁·洛克的博客上有一篇很棒的帖子:https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/

当我们在RC 1时间开始迁移时,我在类似的情况下遇到了类似的问题.在更新相关服务以转发到端口8080/81之后,一切都恢复了正常.

然而,我认为在GA版本中可能又出现了类似的问题(我通过搜索我的答案找到了您的问题!)

.net相关问答推荐

DotNet COM初始化问题

是否必须使用 Visual Studio 预览才能使用 MAUI?

为什么 GetShortestDayName 返回的名称比预期的短?

在 C# 中,如何使用泛型的基类将泛型接口的所有实例注入到单个构造函数中?

如何判断属性设置器是否公开

为什么 .NET 中的 System.Version 定义为 Major.Minor.Build.Revision?

为什么具有可为空值的 struct 的 HashSet 非常慢?

"投掷;" 是什么意思?靠自己做什么?

在 ASP.NET MVC 中我可以在哪里放置自定义类?

Style 和 ControlTemplate 的区别

C# 是否(或将)包含用于副作用验证的功能?

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

获取类型的默认构造函数的最有效方法

哪个更快:清除集合或实例化新的

为什么 .NET 中不需要 Maven?

无法在 Windows 10 上安装 Windows SDK 7.1

加载程序集、查找类和调用 Run() 方法的正确方法

mscorlib 代表什么?

为什么发布和调试模式下的代码行为不同?

如何为我的 C# 应用程序创建产品密钥?