Хорошо, у нас есть несколько сервисов signalR, и мы хотим, чтобы при развертывании нашего кода строка подключения выбиралась из нашего настраиваемого файла конфигурации, а не из параметров приложения функции.
Это функция переговоров. См. Атрибут «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"]);
}
}
, но это не работает. так как выдает ошибку
Invalid host services. Microsoft. Azure .WebJobs.Script.WebHost: следующие регистрации службы не соответствуют ожидаемым службам: [Invalid] ServiceType: Microsoft.Extensions.Hosting.IHostedService, Lifetime: Singleton, ImplementationType: Microsoft. Azure .SignalR. Значение HeartBeat не может быть нулевым. Имя параметра: provider
Итак, есть ли другой способ использовать его в функции?