Azure Functions SignalR输出绑定失败:ServiceEndpoints为空,连接字符串无效
解决Azure Functions Isolated模式下SignalR输出绑定连接字符串为空的问题
问题根源
你的SignalROutput特性中指定的ConnectionStringSetting为"SignalRConnection",但你在local.settings.json里配置的连接字符串键是"AzureSignalRConnectionString",两者名称不匹配,导致框架无法找到有效的连接字符串,从而抛出ServiceEndpoints is empty错误。
具体解决步骤
方案1:修改配置文件的键名,匹配特性设置
- 打开
local.settings.json,将"AzureSignalRConnectionString"改为"SignalRConnection",保持连接字符串值不变:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "your-storage-connection", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "SignalRConnection": "your-signalr-connection-string" } } - 远程部署时,在Azure门户的函数应用配置 > 应用设置中,添加或修改键名为
SignalRConnection的设置,值填入你的SignalR服务连接字符串。
方案2:修改特性参数,匹配配置文件的键名
- 在
SendToGroup函数的SignalROutput特性中,将ConnectionStringSetting的值改为"AzureSignalRConnectionString":[Function("SendToGroup")] public static async Task<HttpResponseData> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, [SignalROutput(HubName = "YourHubName", ConnectionStringSetting = "AzureSignalRConnectionString")] IAsyncCollector<SignalRMessage> signalRMessages) { // 函数逻辑 }
额外检查项
- 确认
local.settings.json的Values节点下的键名拼写完全正确(区分大小写),没有多余空格或拼写错误。 - 远程部署时,务必在Azure门户的应用设置中配置对应的连接字符串,不要仅依赖本地配置文件。
- 确保已安装适配dotnet-isolated模式的SignalR扩展包:
Microsoft.Azure.Functions.Worker.Extensions.SignalRService,版本建议与Azure Functions运行时版本兼容。
内容的提问来源于stack exchange,提问作者ValeriaN
相关产品推荐
相关产品推荐

