编程语言
首页 > 编程语言> > C#-Azure Web作业多个连接字符串

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

作者:互联网

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

解决方法:

与这篇文章相关的可能:

> servicebus webjob different connection string for output or trigger

对于您的情况,您想绑定到不同的存储帐户,以便您的功能看起来像这样:

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

}

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

}

如果要从config获取连接字符串,也可以实现自定义INameResolver:

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("%storageAccount2%")] string filename)
{

}

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

}

> storageAccount1和storageAccount2是appSettings中的连接字符串键

标签:azure-webjobssdk,azure,azure-webjobs,c
来源: https://codeday.me/bug/20191118/2029923.html