为什么我没有使用Azure Service Bus Queue获取队列消息?

时间:2015-12-09 21:00:40

标签: c# azure azure-servicebus-queues

我正在关注如何在Azure文档上使用服务总线队列的文档。

我创建了2个不同的Web应用程序来测试我需要使用的项目的队列。我创建了一个项目来将消息发布到队列中,然后另一个应用程序应该监听队列来处理消息。

我成功地将消息发布到了Queue,我可以看到Azure门户中的队列长度为3.所以应该有3条消息等待我处理。但是,当我运行具有QueueClient.OnMessage的Web应用程序时,没有消息被推送。在做这件事的时候还有其他的东西吗?

var client = QueueClient.CreateFromConnectionString(ConnectionString, "TestQueue");

        var options = new OnMessageOptions
        {
            AutoComplete = false,
            AutoRenewTimeout = TimeSpan.FromMinutes(1)
        };

        // Callback to handle received messages.
        client.OnMessage((message) =>
        {
            try
            {
                // Process message from queue.
                var messageBody = message.GetBody<string>();
                // Remove message from queue.
                message.Complete();
            }
            catch (Exception)
            {
                // Indicates a problem, unlock message in queue.
                message.Abandon();
            }
        }, options);
    }
}

ConnectionStrings在两个应用程序中是相同的,因此没有差异。 这是我用来连接并向队列发送消息的代码。

var client = QueueClient.CreateFromConnectionString(ConnectionString, "TestQueue");
        var message = new BrokeredMessage(value);

        message.Properties["TestProperty"] = "This is a test";
        message.Properties["UserId"] = "TestUser";

        client.Send(message);

如果有人对此为何发生任何见解,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

事实证明,当我尝试连接到我尝试通过其他应用程序调试此问题时注意到的服务总线时,我遇到了407 Proxy Authentication Required错误。 我所要做的就是将以下内容添加到web.config的system.net部分,一旦我这样做,我就能收到消息。

<defaultProxy useDefaultCredentials="true">
<proxy bypassonlocal="True" usesystemdefault="True"/>
</defaultProxy>