gpt4 book ai didi

azure - 如何在最新的azure webjob 3.03中指定AzureWebJobsStorage

转载 作者:行者123 更新时间:2023-12-02 06:29:53 29 4
gpt4 key购买 nike

我将旧的 azure webjob 代码更新为打包到 3.03,然后它就不起作用了。

我设法修复了所有编译时错误,但在本地运行时,它会抛出此错误:

Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException
HResult=0x80131500
Message=Error indexing method 'MvQueueProcessorV2.ProcessMVRequest'
Source=Microsoft.Azure.WebJobs.Host
StackTrace:
at Microsoft.Azure.WebJobs.Host.RecoverableException.TryRecover(ILogger logger) in C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Exceptions\RecoverableException.cs:line 81
at FE.Toolkit.MvPaaS.WebJob.Program.<Main>(String[] args)

Inner Exception 1:
InvalidOperationException: Storage account 'Storage' is not configured.

对我来说,这似乎表明它找不到设置AzureWebJobsStorage?然而,它在 app.config 文件中睡得很好。所以我认为我应该将连接字符串放入 appsettings.json,所以这就是我在 appsettings.json 中所做的:

{
"ConnectionStrings": {
"AzureWebJobsDashboard": "xxx",
"Storage": "yyy"
}
}

但是,它给了我同样的错误。那么如何设置 webjob 3.0 的存储空间呢?

这是我在program.cs中的代码

var builder = new HostBuilder()
.UseEnvironment("Development")
.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices()
.AddAzureStorage()
.AddTimers()
.AddFiles()
.AddDashboardLogging();
})
.ConfigureLogging((context, b) =>
{
b.SetMinimumLevel(LogLevel.Debug);
b.AddConsole();
})
.ConfigureServices(services =>
{
services.AddSingleton<INameResolver, ConfigNameResolver>();
})
.UseConsoleLifetime();

最佳答案

请在您的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();
}
}
}
}

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

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

函数.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);
}
}
}

测试结果:

enter image description here

关于azure - 如何在最新的azure webjob 3.03中指定AzureWebJobsStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54043029/

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