4

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

谢谢。

4

1 回答 1

2

您在这里遇到的问题是您试图将队列连接字符串插入服务总线连接字符串创建器。这两个连接字符串本质上是不同的。

要使用开发存储,您需要将您希望使用的应用程序设置键的值设置为:“UseDevelopmentStorage=true”,如此堆栈溢出所示: Windows Azure Storage Emulator Connection String for ASP.NET MVC? 这将适用于存储(不是服务总线)

于 2015-08-27T16:03:53.260 回答