我按照本指南设置 Azure 应用程序配置。
但我想我误解了这一行:
dotnet user-secrets set ConnectionStrings:AppConfig "Endpoint=<your_endpoint>;Id=<your_id>;Secret=<your_secret>"
更确切地说; 什么是什么...
- your_endpoint = 我设置了我的主键连接字符串(从 Azure 中的应用程序配置资源复制)
- your_id = guid 设置为 UserSecretsId(在指南中提高了几步)
- your_secret = 密钥的密钥(指南中的 ConnectionStrings:AppConfig)
但后来我的程序总是崩溃:
config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]);
除了:
System.FormatException HResult=0x80131537 Message=输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非法字符。Source=System.Private.CoreLib StackTrace:在 System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) 在 System.Convert.FromBase64String(String s) 在 Microsoft.Azure.AppConfiguration.Azconfig.AzconfigClient..ctor(String connectionString, HttpMessageHandler httpMessageHandler, Boolean disposeHandler) 在 Microsoft.Extensions.Configuration.AzureAppConfiguration.AzureAppConfigurationSource.Build(IConfigurationBuilder builder) 在 Microsoft.Extensions.Configuration.ConfigurationBuilder.Build() 在 Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException&
执行此代码块时(来自指南):
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
var settings = config.Build();
config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]);
})
.UseStartup<Startup>();
右键单击项目-> 管理用户机密我有这个 json 文件:
{
"Movies:ServiceApiKey": "12345",
"ConnectionStrings:AppConfig": "Endpoint=<Primary Key Connection String copied value from azure resource>;Id=<the UserSecretsId tag in csproj file>;Secret=<the Key value in App Configuration resource>"
}
值得注意; 我的主键连接字符串包含字符 ';'、'-'、'+' 和 '=' 但这些不应该是非法字符...