gpt4 book ai didi

c# - Azure webjobs JobHostConfiguration 丢失,现在无法进行设置

转载 作者:行者123 更新时间:2023-12-03 00:38:42 26 4
gpt4 key购买 nike

我想将当前的 webjobs 配置重写为 3.0 版本,但无法使其与文档一起使用,因为我不知道如何设置 dashboardconnectionstringstorageconnectionstring 没有配置文件。

JobHostConfiguration config = new JobHostConfiguration
{
NameResolver = new WebJobsNameResolver()
};

string defaultStorageConnectionString = string.Format( "Some dynamically generation string" );
config.DashboardConnectionString = defaultStorageConnectionString;
config.StorageConnectionString = defaultStorageConnectionString;

using(JobHost host = new JobHost(config))
{
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}

我想让它使用正确的存储和仪表板连接字符串连续运行,而不使用配置文件。

最佳答案

3.0.0 NuGet 包更新(非测试版)带来了重大变化。它基于类似于 asp.net 主机的通用主机。您可以引用以下步骤:

1.在您的program.cs中添加这行代码。

.ConfigureAppConfiguration((context, config) => {
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})

完整代码在Program.cs中。

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace WebJob1template
{
class Program
{
static void Main()
{

var builder = new HostBuilder()
.UseEnvironment("Development")
.ConfigureAppConfiguration((context, config) => {
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.ConfigureWebJobs(
b =>
{
b.AddAzureStorageCoreServices()
.AddAzureStorage()
.AddTimers()
.AddFiles();
//.AddDashboardLogging();
})
.ConfigureLogging((context, b) =>
{
b.SetMinimumLevel(LogLevel.Debug);
b.AddConsole();
})
.UseConsoleLifetime();


var host = builder.Build();

using (host)
{
host.Run();
}
}
}
}

2.设置appsettings.json(注意设置其属性复制到输出目录始终复制):

{
"ConnectionStrings": {
"AzureWebJobsDashboard": "xxxx",
"AzureWebJobsStorage": "xxxx"
}
}

3.Functions.cs:

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

namespace WebJob1template
{
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger log)
{
//log.WriteLine(message);
log.LogInformation(message);
}
}
}

4.输出: enter image description here

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

更新:

正如乔伊所说,我们可以使用

config.AddInMemoryCollection(settings);

public static Dictionary<string, string> settings = new Dictionary<string, string>
{
{"ConnectionStrings:AzureWebJobsDashboard:0", "xxxxxxx"},
{"ConnectionStrings:AzureWebJobsStorage:1", "xxxxxx"},
};

这样它就不会使用配置文件。这里有一篇关于如何使用AddInMemoryCollection的文章

关于c# - Azure webjobs JobHostConfiguration 丢失,现在无法进行设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951336/

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