所以我们刚刚将.NET 6项目升级到.NET 8,一切都很好,除了SignalR连接。
我们在kubernetes集群上运行,并有一个入口和服务(没有改变)来连接到运行.NET应用程序的docker容器。
当我们运行.NET 6容器时,一切都很完美,但是一旦我们部署了.NET 8容器,HubConnection.StartAsync(来自其他应用程序)就会抛出:
'响应状态代码未指示成功:502(Bad Gateway)。'
有没有人知道.NET 8或Docker容器(mcr.microsoft.com/dotnet/aspnet:8.0)与.NET 6相比是否发生了变化,这使得它不会暴露端口或其他会阻止通信的东西?
我们已经尝试在localhost上运行它,然后它可以连接。而且.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"]
字符串
1条答案
按热度按时间kg7wmglp1#
微软更新了Dotnet 8镜像,默认使用8080和8081端口
在Andrew Lock的博客上有一篇很棒的文章:https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/
当我们在RC 1时间开始迁移时,我在类似的情况下遇到了类似的问题。在更新相关服务以转发到端口8080/81后,一切都恢复了正常。
然而,我认为一个类似的问题可能已经在GA版本中返回(我通过搜索我的答案找到了你的问题!)