繁体   English   中英

无法从 Azure App 服务配置应用程序设置中读取 Azure SignalR 连接字符串

[英]Unable to read Azure SignalR Connection String from Azure App Service Configuration Application Settings

我正在开发一个 Azure SignalR 应用程序,当我在我的 appsettings.json 中设置以下部分时,我的本地计算机上一切正常:

 "Azure": {
    "SignalR": {
      "ConnectionString": "XXXXX"
    }
  }

然后在我的startup.cs中初始化如下:

services.AddSignalR().AddAzureSignalR();

但是,当我使用 App Service>Configration>ApplicationSettings 在我的 Azure App Service 中创建相同的环境变量时: 在此处输入图像描述

我的应用程序无法启动,并且出现以下应用程序错误:

System.ArgumentException: Connection string missing required properties endpoint and accesskey. (Parameter 'connectionString')
   at Microsoft.Azure.SignalR.ConnectionStringParser.Parse(String connectionString)
   at Microsoft.Azure.SignalR.ServiceEndpoint..ctor(String connectionString, EndpointType type, String name)

当我将我的连接字符串硬核到 AddAzureSignalR() connectionstring 参数并部署时,一切正常。

azuresignalR 似乎无法获取此环境变量,尽管也可以通过 Kudo Appsettings 页面将其视为 Azure:SginalR:ConnectionString。

你需要像这样开始,

 string azureSignalrConnectionString = configuration["Azure:SignalR:ConnectionString"];
 services.AddSignalR().AddNewtonsoftJsonProtocol().AddAzureSignalR(options =>
 {
        options.ConnectionString = azureSignalrConnectionString;
 });

所以我在 Azure SignalR github 页面上问了同样的问题,下面是我得到的答案:

EnvironmentVariablesConfigurationProvider 自动将 __ 替换为 : 。 所以当你通过环境变量配置连接字符串时,你应该使用 Azure__SignalR__ConnectionString 作为键。 通过 JSON 文件对其进行配置时,应使用源密钥 Azure:SignalR:ConnectionString。

一旦我将其更改为双下划线,一切都有效

对于.net core 5,使用:

string azureSignalrConnectionString = Configuration["Azure:SignalR:ConnectionString"];
services.AddSignalR()
        .AddAzureSignalR(options =>
{
     options.ConnectionString = azureSignalrConnectionString;
});

appsettings.json,例如:

{
  "Azure": {
    "SignalR": {
      "ConnectionString": "<your-connection-string>"
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM