2017-05-10 28 views
0

当我将以下NuGet包添加到我的Web作业:Microsoft.Azure.WebJobs.ServiceBus 2.0.0, 将两个新项目添加到app.config文件中。 看起来它们都用于定义服务总线连接字符串。 我可以摆脱其中一个吗?Azure WebJobs和Service Bus:2个设置为同一件事?

<connectionStrings> 
    <add name="AzureWebJobsServiceBus" connectionString="..." /> 
</connectionStrings> 

<appSettings> 
    <!-- Service Bus specific app setings for messaging connections --> 
    <add key="Microsoft.ServiceBus.ConnectionString" value="..." /> 
</appSettings> 

感谢您的帮助!

+0

如何配置您的作业主机? – Thomas

回答

0

看起来它们都用于定义服务总线连接字符串。我可以摆脱其中一个吗?

据的ServiceBusConfiguration源代码,WebJob服务总线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); 

如果你想创建服务总线客户的实例(例如QueueClient)做一些特定的操作,您可以使用的appSettings配置的服务总线连接字符串。

//Use CloudConfigurationManager to read the connection string stored in appSettings 
string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString"); 
var client = QueueClient.CreateFromConnectionString(connectionString, "queueName");