SignalRCore和Azure功能

我有一个Asp.Net-Core 3.0 Web服务,它作为一个单一容器功能应用程序运行。这对我的Rest api非常有效。

但是我最近添加了SignalR集线器来添加通知服务,但这在Azure函数中的Web应用程序的托管版本中不起作用。当我尝试使用.Net signalrcore 3客户端连接到集线器时,出现以下错误:

  

在握手开始之前,服务器已断开连接。

当我将容器作为基本Azure容器实例运行时,SignalR功能可以正常工作。

有什么想法为什么会发生,以及是否甚至可以将SignalR集线器添加到Azure函数托管的Docker容器中?

lgqlgqlgqlgq 回答:SignalRCore和Azure功能

按设计,SignalR似乎不能在Function App中托管的Asp.Net-Core3 Docker容器实例中运行,因为功能应用应该是无状态的,而SignalR不是。为此,您将需要使用来自AspNetCore Web服务的单独的Azure SignalR服务。

https://azure.microsoft.com/en-us/services/signalr-service/

并在您的StartUp类中更改注册代码。

var signalRServerBuilder = services.AddSignalR();

var signalRConnectionString = m_configuration[@"SignalRConnectionString"];
if (!string.IsNullOrWhiteSpace(signalRConnectionString))
{
    signalRServerBuilder.AddAzureSignalR(signalRConnectionString);
}
本文链接:https://www.f2er.com/3155944.html

大家都在问