gpt4 book ai didi

c# - Azure 不从 WebJob 读取连接字符串

转载 作者:行者123 更新时间:2023-12-03 04:46:21 25 4
gpt4 key购买 nike

我正在尝试使用我的 .NET Core 项目配置 Azure WebJob。每次我在 Azure 中执行作业时,它都会告诉我错误:

Make sure that you are setting a connection string named AzureWebJobsDashboard in your Microsoft Azure Website configuration by using the following format DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY pointing to the Microsoft Azure Storage account where the Microsoft Azure WebJobs Runtime logs are stored.

这是我的代码,我在其中配置所有内容以及配置内容:

    private static void ConfigureServices(IServiceCollection serviceCollection)
{
// Optional: Setup your configuration:
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();

// add any interfaces that will be needed here
serviceCollection.AddScoped<IBatchJobService, BatchJobService>();

// executes the job
serviceCollection.AddScoped<ExecuteBatchJobs, ExecuteBatchJobs>();

// One more thing - tell azure where your azure connection strings are
var connStringDashboard = configuration["ConnectionStrings:AzureWebJobsDashboard"];
var connStringStorage = configuration["ConnectionStrings:AzureWebJobsStorage"];

Environment.SetEnvironmentVariable("AzureWebJobsDashboard", connStringDashboard);
Environment.SetEnvironmentVariable("AzureWebJobsStorage", connStringStorage);
}

这是 appsettings.json 文件:

{
"ConnectionStrings": {
"AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=xxxxxxxxxxx;AccountKey=mykey;",
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=xxxxxxxxxxx;AccountKey=mykey;"
}
}

我在本地代码中的“var connStringDashboard = ....”上设置了一个断点,它正确地读取了 appsettings.json 中的值。

然后它通过环境变量设置连接字符串。

对于我在设置连接字符串时出错的地方有什么想法吗?由于某种原因,Azure 似乎无法从环境变量中读取它们。

最佳答案

您需要在 Web 应用程序的门户中设置 AzureWebJobsDashboard 连接字符串 Application Settings刀刃。 仪表板作为单独的网站扩展运行,并且无法访问 appsettings.json

将连接字符串添加到“应用程序设置”边栏选项卡上的连接字符串部分

您可以更改代码,以便将 appsettings.json 文件和 Azure 的 Application Settings 中的连接字符串重命名为其他内容(例如 WebJobsStorageWebJobsDashboard),然后它就可以工作了。

Environment.SetEnvironmentVariable("AzureWebJobsStorage", configuration.GetConnectionString("WebJobsStorage"));
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", configuration.GetConnectionString("WebJobsDashboard"));

更多详情可以引用这个issue .

关于c# - Azure 不从 WebJob 读取连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com