首页 > 解决方案 > 绑定类型“signalR”未注册

问题描述

一天前我让它工作了,我不确定发生了什么变化,但是现在当我运行时func start ,我的 SignalRnegotiatemessagesnodejs 函数出现以下错误。我尝试安装功能核心工具 v2 和 v3,但问题仍然存在。我很感激任何帮助!

在此处输入图像描述

主机.json

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  }
}

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureSignalRConnectionString": "<endpoint>",
    "FUNCTIONS_WORKER_RUNTIME": "node"
  },
  "Host": {
    "LocalHttpPort": 7070,
    "CORS": "http://localhost:4200",
    "CORSCredentials": true
  }
}

协商功能

module.exports = async function (context, req, connectionInfo) {
  context.res.json(connectionInfo);
};

消息功能


module.exports = async function (context, req) {
  return {
    "target": "newMessage",
    "arguments": [ req.body ]
  };
};

标签: node.jssignalrazure-functions

解决方案


我刚刚测试了此链接中提供的 nodejs 示例,它运行良好。

步骤是

1.下载项目。

2.重命名local.settings.sample.jsonlocal.settings.json

3.在local.settings.json中,将连接字符串粘贴到AzureSignalRConnectionString设置的值中。

根据您提供的错误消息,请确保您的 SignalR 服务的服务模式为无服务器。请检查文件中的CORS配置local.settings.json

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

如果您仍然遇到“未注册绑定类型“signalR”的问题,您可以尝试删除文件中的extensionBundle设置host.json并再次运行。它将自动安装 SignalRService 扩展。

在此处输入图像描述

在此处输入图像描述

这样,您可能需要在文件中添加AzureWebJobsStorage设置。local.settings.json

在此处输入图像描述


推荐阅读