signalR的Azure函数绑定错误(协商函数)(500错误代码)

时间:2019-11-03 17:24:22

标签: azure signalr azure-functions azure-function-app

我正在使用Azure函数和signalR创建实时聊天。它在本地工作得很好,但是已部署的“协商”功能不起作用。

谈判功能(index.js)

module.exports = function (context, req, connectionInfo) {
    context.res = { body: connectionInfo };
    context.done();
}

配置文件(function.json)

{
    "disabled": false,
    "bindings": [
      {
        "authLevel": "anonymous",
        "type": "httpTrigger",
        "direction": "in",
        "name": "req"
      },
      {
        "type": "http",
        "direction": "out",
        "name": "res"
      },
      {
        "type": "signalRConnectionInfo",
        "name": "connectionInfo",
        "hubName": "chat",
        "direction": "in",
        "connectionStringSetting": "AzureSignalRConnectionString"
      }
    ]
  }

AzureSignalRConnectionString在功能应用程序属性中设置。 我还尝试使用“ connectionString”代替“ connectionStringSetting”,并使用连接字符串代替“ AzureSignalRConnectionString”引用,以及这里提供的所有4种可能的组合。

如果我在Azure门户中运行该功能,则会出现此错误:

  

[错误]已执行“ Functions.negotiate”(失败,Id = 0ac24b1f-1ab0-40f5-9680-34db547e1cc9)
  无法解析属性“ SignalRConnectionInfoAttribute.ConnectionStringSetting”的值。确保设置存在并且具有有效值

2 个答案:

答案 0 :(得分:0)

您是否在代码中写了“ connectionStringSetting”作为属性名称?如果是这样,请您尝试将其更改为“ ConnectionStringSetting”。您可以参考此tutorial或我在下面发布的屏幕截图:

enter image description here

答案 1 :(得分:0)

已解决(在https://social.msdn.microsoft.com/上得到了答案)。 我应该在FunctionApp / Configuration / Application设置中添加AzureSignalRConnectionString而不是FunctionApp / Configuration / Application设置/连接字符串。