我有一个在 Windows Server 2019 上的 IIS 上运行的 ASP.NET 和 Angular 应用程序。将应用程序移动到另一台服务器后,我开始收到“与该 ID 没有连接”错误,因此应用程序的某些关键功能无法使用工作。
有趣的是,它会在一段时间后发生。当我登录时,一开始效果很好。几分钟后,我开始在控制台中看到404错误。而且,当我尝试直接在浏览器上访问该链接(https://mywebsite.com/api/Hubs/ReservationHub?id=xxx)时,我收到“与该 ID 没有连接”。
我在服务器中没有看到任何错误日志。 Cloudflare 用于 DNS。
如有任何帮助,我们将不胜感激。
会话持久性似乎未启用或无法正常工作。也称为会话亲和性 | “粘性”会话。
这是为了确保同一用户的请求始终发送到同一服务器。 SignalR 要求单个连接的所有请求都发送到同一台物理服务器。如果任何请求最终被路由到不同的服务器,您将收到 404“与该 ID 没有连接”。
您可以获取失败连接的网络跟踪以获得更好的概览,但这在大多数情况下都是原因。
我认为你需要在 IIS 中启用 WebSockets:
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-6.0
您在控制台中看到的 URL 应为 wss://mywebsite.com/api/Hubs/ReservationHub?id=xxx
我知道这是一个老问题,但它是搜索引擎中的第一个问题。
我面临着同样的错误,但一切都在同一台机器/服务器上。
原因是
hostingModel="outofprocess"
(web.config)。更改后inprocess
问题就消失了。