【发布时间】:2018-04-11 01:58:51
【问题描述】:
我有一个简单的类,我想用它在我的 Azure 服务总线命名空间上创建一个队列。这是我的课:
public class ServiceBusPublisher
{
private readonly string _connString;
public ServiceBusPublisher(IConfiguration config)
{
_connString = config.GetSection("ServiceBus:Endpoint").Value;
}
public void CreateQueue(string queueName)
{
var namespaceManager = NamespaceManager.CreateFromConnectionString(_connString);
if (!namespaceManager.QueueExists(queueName))
{
namespaceManager.CreateQueue(queueName);
}
}
}
一切都设置好了,似乎工作正常,我在我的启动中注册了服务,我的连接字符串很好,作为服务总线连接字符串:
Endpoint=sb://myservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abcdefg12345
但是当它尝试调用 NamespaceManager.CreateFromConnectionString(_connString) 时,我得到了这个异常
System.IO.FileNotFoundException:无法加载文件或程序集“System.Configuration.ConfigurationManager,版本=0.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51”。该系统找不到指定的文件。 文件名:'System.Configuration.ConfigurationManager,版本=0.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51' 在 Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.CreateNameValueCollectionFromConnectionString(字符串连接字符串) 在 Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.Initialize(字符串连接,Nullable`1 传输类型) 在 Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(String connectionString)
我觉得我疯了,因为这应该是如此简单,但它似乎试图访问配置文件,它不能。但是我已经将连接字符串传递给它,所以我不确定它为什么要这样做。
我做错了吗?
【问题讨论】:
-
NamespaceManager 类属于Microsoft.ServiceBus 包。但是您的错误与 System.Configuration.ConfigurationManager 有关。你确定你已经添加了 System.Configuration 引用吗?
标签: c# azure azureservicebus servicebus