我已经使用VS 2013中的QueueWorkerRole模板创建了一个新的WorkerRole,它创建的代码如下所示:
// Create the queue if it does not exist already
var connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
if (!namespaceManager.QueueExists(QueueName))
{
namespaceManager.CreateQueue(QueueName);
}
// Initialize the connection to Service Bus Queue
_client = QueueClient.CreateFromConnectionString(connectionString, QueueName);我遇到的问题是如何正确设置Microsoft.ServiceBus.ConnectionString,以便它能与模拟器中运行的本地开发队列一起工作。默认情况下,它是这样设置的:
<appSettings>
<!-- Service Bus specific app setings for messaging connections -->
<add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://[your namespace].servicebus.windows.net;SharedSecretIssuer=owner;SharedSecretValue=[your secret]" />
</appSettings>我猜当我有一个托管服务要连接时,这将会工作得很好,但我只是在本地尝试一些东西,无法连接到它。
我已经尝试了"UseDevelopmentStorage=True“,并且我已经尝试使用在查看存储仿真器UI "127.0.0.1:10001”以及使用标准格式的本地仿真器时找到的地址:http://www.connectionstrings.com/windows-azure/ (DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;),但我没有运气。
有时我在Compute Emulator UI中看到“Service Bus连接字符串包含无效属性”,而有时我收到无法连接的错误。
谢谢。
发布于 2015-08-28 00:03:53
这里的问题是,您试图将队列连接字符串插入到Service Bus连接字符串创建器中。这两个连接字符串本质上是不同的。
要使用开发存储,您需要将您希望使用的应用程序设置键的值设置为:"UseDevelopmentStorage=true“,如此堆栈溢出所示:Windows Azure Storage Emulator Connection String for ASP.NET MVC?这将适用于存储(而不是服务总线)
https://stackoverflow.com/questions/19667500
复制相似问题