Azure WebJobs连接字符串配置(AzureWebJobsDashboard??)
我正在尝试使用Azure Webjobs,我了解它的工作方式,但我不明白为什么我需要使用两个连接字符串,一个用于队列以保存消息,但是Azure WebJobs连接字符串配置(AzureWebJobsDashboard??),azure,azure-webjobs,azure-webjobssdk,Azure,Azure Webjobs,Azure Webjobssdk,我正在尝试使用Azure Webjobs,我了解它的工作方式,但我不明白为什么我需要使用两个连接字符串,一个用于队列以保存消息,但是 为什么还有另一个叫做“AzureWebJobsDashboard”的呢 它的目的是什么 我从哪里得到这个连接字符串 目前,我在同一个解决方案中有一个Web应用程序和一个Webjob,我只是在本地进行实验(不发布任何内容),我在云中得到的一个东西是保存队列的存储帐户 我甚至尝试在两个位置(AzureWebJobsDashboard、AzureWebJobsStora
谢谢。有两个连接字符串,因为WebJobs SDK在存储帐户中写入了一些日志。它使您可以使用一个存储帐户只存储数据(
azurewebjobstorage
),另一个存储帐户存储日志(AzureWebJobsDashboard
)。它们可以是相同的。另外,您需要两个,因为您可以有多个作业主机使用不同的数据帐户,但将日志发送到同一个仪表板
您得到的错误与连接字符串无关,而是与代码中的某个函数有关。其中一个具有类型不正确的
log
参数。你能分享代码吗?好的,有人来这里想知道“我从哪里获得连接字符串”的实际答案吗。。。给你
在新的Azure门户上,您应该有一个存储帐户资源;我的开始是“portalvhds”,后面是一堆字母数字。单击该按钮,以便在右侧看到一个资源仪表板,紧接着是一个设置窗口。查找“常规”下的“键”子菜单--单击该子菜单。整个连接字符串都在那里(实际上有两个,主要的和次要的;我目前不理解区别,但是让我们继续主要的,好吗?)
将其复制并粘贴到AzureWebJobsDashboard和AzureWebJobsStorage项目的connectionString属性的App.config文件中。这假定在您的环境中,您只有一个存储帐户,因此您希望相同的存储用于数据和日志
我试过了,至少WebJob运行时没有出现错误。@RayHAz-扩展您的上述答案(谢谢) 我试过这个 但在.NETCore2.1中,却出现了关于如何找不到连接字符串的异常 长话短说,我最终得出以下结论,这对我来说很有用: appsettings.json,在.Net Core 2.1控制台应用程序中:
{
"ConnectionStrings": {
"AzureWebJobsStorage": "---your Azure storage connection string here---",
"AzureWebJobsDashboard":"---the same connectionstring---"
}
}
。。。还有我的Program.cs文件
using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace YourWebJobConsoleAppProjectNamespaceHere
{
public class Program
{
public static IConfiguration Configuration;
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Path.Combine(AppContext.BaseDirectory))
.AddJsonFile("appsettings.json", true);
Configuration = builder.Build();
var azureWebJobsStorageConnectionString = Configuration.GetConnectionString("AzureWebJobsStorage");
var azureWebJobsDashboardConnectionString = Configuration.GetConnectionString("AzureWebJobsDashboard");
var config = new JobHostConfiguration
{
DashboardConnectionString = azureWebJobsDashboardConnectionString,
StorageConnectionString = azureWebJobsStorageConnectionString
};
var loggerFactory = new LoggerFactory();
config.LoggerFactory = loggerFactory.AddConsole();
var host = new JobHost(config);
host.RunAndBlock();
}
}
}
谢谢维克托的解释,关于我修正的例外情况…这是一个小的打字错误。但是维克多,我从日志中得到了什么好处?为什么要将它们放在特殊的存储帐户中?有时,您不想用只对仪表板有用的日志污染数据帐户。但是,正如我前面提到的,仪表板和数据帐户可以是同一个存储帐户您可以在没有Azure存储帐户的情况下本地调试Azure webjobs吗?@Manirajs在解决方案资源管理器中->右键单击WebJob项目,然后选择“调试->启动新实例”。让我知道它是否适用于您。我可以通过单击
设置为启动项目
并运行来调试webjobs。但是我对连接字符串有问题。我没有存储帐户,也找不到如何为webjobs配置localdb。@ManirajSS连接字符串需要是存储帐户的连接字符串。你不需要数据库,你需要存储帐户。我不知道你是否可以在本地设置存储帐户,搜索它。如果你还需要什么。。我在这里:)