【发布时间】:2020-08-06 13:19:34
【问题描述】:
好的,所以我们有多个 signalR 服务,我们要做的是在部署代码时,我们希望从自定义配置文件中选择连接字符串,而不是从函数 App 设置中选择。
这是协商功能。请参阅“SignalRConnectionInfo”属性。
[FunctionName("negotiate")]
public IActionResult negotiate(
[HttpTrigger(AuthorizationLevel.Function, "post")]
HttpRequest req,
[SignalRConnectionInfo(HubName = HubName, ConnectionStringSetting = **"Cannot pass dynamic connection string here as it requies a constant"**)]
SignalRConnectionInfo connectionInfo )
{
}
我们尝试在 Startup.cs 中添加它
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
IConfigurationRoot config;
builder.Services.AddSignalR().AddAzureSignalR(config["SignalrConnectionString"]);
}
}
它不能以这种方式工作。因为它给出了一个错误
主机服务无效。 Microsoft.Azure.WebJobs.Script.WebHost:以下服务注册与预期服务不匹配: [无效] ServiceType:Microsoft.Extensions.Hosting.IHostedService,Lifetime:Singleton,ImplementationType:Microsoft.Azure.SignalR.HeartBeat 值不能为空。 参数名称:提供者
那么,有没有其他方法可以在函数中使用呢?
【问题讨论】:
-
你有想过这个吗?
-
抱歉,我们无法做到这一点,所以最后我们不得不保留应用设置 D 中的连接字符串;
-
谢谢。请发布解决方案。
标签: azure azure-functions signalr