部署到Azure时,Core 2.2上的信号器失败

部署到Azure时,Core 2.2上的信号器失败,azure,.net-core,signalr,azure-web-app-service,Azure,.net Core,Signalr,Azure Web App Service,我已经使用.NETCore2.2建立了一个简单的信号器解决方案。我不能使用Core3.x,因为我需要使用一些依赖于2.2的库 当我在本地调试时,它工作得很好 然而,当我将Azure作为应用程序服务部署时,每当JS尝试建立连接时,我可以在Chrome的网络选项卡中看到它在调用/hub/negotiate时失败,并且返回400 这种情况不会在本地发生。在本地,我正在运行IIS Express,Azure中的服务器正在运行Kestrel 到目前为止,我所尝试的: 确保在Azure中的配置下启用了we

我已经使用.NETCore2.2建立了一个简单的信号器解决方案。我不能使用Core3.x,因为我需要使用一些依赖于2.2的库

当我在本地调试时,它工作得很好

然而,当我将Azure作为应用程序服务部署时,每当JS尝试建立连接时,我可以在Chrome的网络选项卡中看到它在调用/hub/negotiate时失败,并且返回400

这种情况不会在本地发生。在本地,我正在运行IIS Express,Azure中的服务器正在运行Kestrel

到目前为止,我所尝试的:

  • 确保在Azure中的配置下启用了web套接字。它已经启用
  • 我相信Kestrel在Azure中支持代理,所以我添加了
    app.UseForwardedHeaders(新ForwardedHeadersOptions{ForwardedHeaders=ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto})在最顶端。这没有效果
我没有使用MessagePack

使用:

  • netcoreapp2.2
  • @aspnet/signalr 1.1.4(2.2是否正确?它在本地工作)

有什么问题吗?

我可以清楚地告诉您,在
.net core 2.2
中使用
信号器1.1.4
没有问题

在windows和linux中部署时可以正常运行。您可以,并与您的项目进行比较,是否存在导致此错误的任何修改

不使用代理设置

唯一需要注意的是:

我发现,当项目部署在linux下时,启动正常操作需要一段时间,大约3到5分钟。原因目前尚不清楚。如果你遇到它,你可以


正确的客户端是
@microsoft/signal
。为什么不使用.NETCore3.1呢?您使用的哪些库只能与2.2一起使用?将2.2库与3.1结合使用应该不会有任何问题。此外,2.2已失去支持。这是一个点版本,而不是像2.1或3那样的长期支持版本。1@PanagiotisKanavos我以为@microsoft/Signaler是为Core 3设计的?我正在使用公司创建的内部库。我们正计划升级,但不是现在。我已经尝试过在这些库中使用Core3,但存在大量问题。这是一个Javascript包,与.NETCore版本无关
aspnet/signlar
是一个过时的包,仅针对signlar 1。SignalR本身是一个.NET标准库,作为NuGet包提供,并且与.NET核心版本无关。至于内部项目,您是否尝试过给它们打电话,或者您是否认为它们不起作用?升级到@microsoft/signal似乎在本地起作用。部署后,它仍然返回400。我无法升级到Core 3。@aspnet/signer目标是signer Core 1和2@然后,microsoft/signalr可能会对与signalr Core 2不兼容的协议进行更改。