我使用 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 中看到“服务总线连接字符串包含无效属性”,有时我收到无法连接的错误。
谢谢。