in src/Microsoft.Azure.SignalR.AspNet/ServiceOptions.cs [21:63]
public ServiceOptions()
{
var count = ConfigurationManager.ConnectionStrings.Count;
string? connectionString = null;
var endpoints = new List<ServiceEndpoint>();
var connectionStringKeyPrefix = $"{Constants.Keys.ConnectionStringDefaultKey}:";
for (var i = 0; i < count; i++)
{
var setting = ConfigurationManager.ConnectionStrings[i];
if (setting.Name == Constants.Keys.ConnectionStringDefaultKey)
{
connectionString = setting.ConnectionString;
}
else if (setting.Name.StartsWith(connectionStringKeyPrefix) && !string.IsNullOrEmpty(setting.ConnectionString))
{
endpoints.Add(new ServiceEndpoint(setting.Name, setting.ConnectionString));
}
}
// Fallback to use AppSettings
if (string.IsNullOrEmpty(connectionString) && endpoints.Count == 0)
{
foreach (var key in ConfigurationManager.AppSettings.AllKeys)
{
if (key == Constants.Keys.ConnectionStringDefaultKey)
{
connectionString = ConfigurationManager.AppSettings[key];
}
else if (key.StartsWith(connectionStringKeyPrefix))
{
var value = ConfigurationManager.AppSettings[key];
if (!string.IsNullOrEmpty(value))
{
endpoints.Add(new ServiceEndpoint(key, value));
}
}
}
}
ConnectionString = connectionString;
Endpoints = endpoints.ToArray();
}