Azure SignalR:HubException 方法不存在

Mat*_*t M 2 azure signalr-hub azure-signalr

我发现我们收到此错误:

Failed to invoke 'CreateChatRequest' due to an error on the server. HubException: Method does not exist.
at _this.callbacks.<computed> (chat.min.js:2060)
at HubConnection.processIncomingData (chat.min.js:2154)
at WebSocketTransport.HubConnection.connection.onreceive (chat.min.js:1881)
at WebSocket.webSocket.onmessage (chat.min.js:3922)
Run Code Online (Sandbox Code Playgroud)

该方法确实存在。该代码确实有效,然后经过一段时间的测试,它会返回此内容并且不会停止。

似乎可以暂时解决问题的是重新启动 Azure SigR 服务,但它又回来了。在开发过程中以本地 SigR 为目标时不会出现此问题;它只发生在 Azure SigR 上。

根据文档,当服务器上出现错误时,这似乎是一个包罗万象的错误,但没有记录任何异常。我已经打开了详细的错误,但这并没有改变从服务器返回的错误。我还尝试捕获异常并发回 HubException 以查看发生了什么,但这也没有改变错误消息。

TIA 寻求任何帮助。

zap*_*ppa 5

因此,对我来说,答案是我已检入(以进行源代码管理)我的 azure 服务的连接字符串,因此其他开发人员也在使用它并将他们的 API 服务版本指向该 azure 服务。因此,当我运行我的代码时,有时 azure 会使用新方法命中我的 API 服务并且它会工作,有时它会命中其他人的 API 服务并因此失败,因为他们的代码没有新方法。

  • 通俗地说,在我的环境中,我的前端 WebApp 以及另一个 Web Api 项目(均为 .NET Core 6.0)和使用 Azure SignalR 服务都有相同的 SignalR Hub 类。从上面给出的答案中,我意识到我没有将相同的方法复制到两个类/项目中,即使我不需要 WebApi 项目中的所有 Hub 类方法,但似乎这些方法必须存在于两个类/项目中,否则我们得到这个错误。@zappa 感谢您的线索... (2认同)