我正在使用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”的值。确保设置存在并且具有有效值
答案 0 :(得分:0)
您是否在代码中写了“ connectionStringSetting”作为属性名称?如果是这样,请您尝试将其更改为“ ConnectionStringSetting”。您可以参考此tutorial或我在下面发布的屏幕截图:
答案 1 :(得分:0)
已解决(在https://social.msdn.microsoft.com/上得到了答案)。 我应该在FunctionApp / Configuration / Application设置中添加AzureSignalRConnectionString而不是FunctionApp / Configuration / Application设置/连接字符串。