C# Azure web作业多个连接字符串

C# Azure web作业多个连接字符串,c#,azure,azure-webjobs,azure-webjobssdk,C#,Azure,Azure Webjobs,Azure Webjobssdk,Azure WebJob从web应用程序(运行作业)配置参数-AzureWebJobsStorage获取连接字符串。 我需要使用一个WebJob监视不同存储中的两个队列。 一个WebJob是否可能有多个连接字符串?与此帖子相关的是: 在您的情况下,您希望绑定到不同的存储帐户,以便您的函数可以如下所示: public static void JobQueue1( [QueueTrigger("queueName1"), StorageAccount("storageAccou

Azure WebJob从web应用程序(运行作业)配置参数-AzureWebJobsStorage获取连接字符串。 我需要使用一个WebJob监视不同存储中的两个队列。
一个WebJob是否可能有多个连接字符串?

与此帖子相关的是:

在您的情况下,您希望绑定到不同的存储帐户,以便您的函数可以如下所示:

public static void JobQueue1(
    [QueueTrigger("queueName1"),
    StorageAccount("storageAccount1ConnectionString")] string message)
{

}

public static void JobQueue2(
    [QueueTrigger("queueName2"),
    StorageAccount("storageAccount2ConnectionString")] string message)
{

}
public static void JobQueue1(
    [QueueTrigger("queueName1"),
    StorageAccount("%storageAccount2%")] string filename)
{

}

public static void JobQueue2(
    [QueueTrigger("queueName2"),
    StorageAccount("%storageAccount1%")] string filename)
{

}
如果要从配置中获取连接字符串,还可以实现自定义Inamersolver:

public class ConfigNameResolver : INameResolver
{
    public string Resolve(string name)
    {
        string resolvedName = ConfigurationManager.AppSettings[name];
        if (string.IsNullOrWhiteSpace(resolvedName))
        {
            throw new InvalidOperationException("Cannot resolve " + name);
        }

        return resolvedName;
    }
}
要使用它:

var config = new JobHostConfiguration();
config.NameResolver = new ConfigNameResolver();
...
new JobHost(config).RunAndBlock();
您的新功能如下所示:

public static void JobQueue1(
    [QueueTrigger("queueName1"),
    StorageAccount("storageAccount1ConnectionString")] string message)
{

}

public static void JobQueue2(
    [QueueTrigger("queueName2"),
    StorageAccount("storageAccount2ConnectionString")] string message)
{

}
public static void JobQueue1(
    [QueueTrigger("queueName1"),
    StorageAccount("%storageAccount2%")] string filename)
{

}

public static void JobQueue2(
    [QueueTrigger("queueName2"),
    StorageAccount("%storageAccount1%")] string filename)
{

}
  • storageAccount1和storageAccount2是
    appSettings

您不能添加多个具有不同名称和值的连接字符串吗?AFAIK Azure WebJob使用父应用程序中的默认连接字符串名称“AzureWebJobsStorage”。您有使用连接字符串的代码示例吗?@henmer,您熟悉webjobs吗?WebJobs SDK考虑来自父应用程序的AzureWebJobs存储连接字符串。我无法通过WebJob访问它,因为WebJobs不知道它将被托管在哪里。@minuzZ/
AzureWebJobsStorage
只是默认设置,但不是唯一的设置。您可以使用多个连接字符串。