当我将以下NuGet包添加到我的WebJob:Microsoft.Azure.WebJobs.ServiceBus 2.0.0
时,
app.config
文件中添加了两个新项目。
它们似乎都用于定义Service Bus连接字符串。
我可以摆脱其中一个吗?
<connectionStrings>
<add name="AzureWebJobsServiceBus" connectionString="..." />
</connectionStrings>
<appSettings>
<!-- Service Bus specific app setings for messaging connections -->
<add key="Microsoft.ServiceBus.ConnectionString" value="..." />
</appSettings>
感谢您的帮助!
答案 0 :(得分:0)
它们似乎都用于定义Service Bus连接字符串。我可以摆脱其中一个吗?
根据ServiceBusConfiguration的源代码,WebJob Service Bus SDK(ServiceBusTrigger)将使用存储在connectionStrings部分下的连接字符串。
public string ConnectionString
{
get
{
if (!_connectionStringSet)
{
_connectionString = AmbientConnectionStringProvider.Instance.GetConnectionString(ConnectionStringNames.ServiceBus);
_connectionStringSet = true;
}
return _connectionString;
}
set
{
_connectionString = value;
_connectionStringSet = true;
}
}
您还可以在运行时设置连接字符串。
JobHostConfiguration config = new JobHostConfiguration();
config.UseServiceBus(new ServiceBusConfiguration() { ConnectionString = "" });
JobHost host = new JobHost(config);
如果要创建Service Bus Client的实例(例如QueueClient)来执行某些特定操作,可以使用appSettings中配置的Service Bus连接字符串。
//Use CloudConfigurationManager to read the connection string stored in appSettings
string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
var client = QueueClient.CreateFromConnectionString(connectionString, "queueName");