为什么我无法使用 Azure 服务总线队列获取队列消息?
Why am I not getting queue messages using Azure Service Bus Queue?
我正在关注如何在 Azure 文档中使用服务总线队列的文档。
我创建了 2 个不同的 Web 应用程序来测试使用队列来处理我需要处理的项目。我创建了一个项目来将消息发布到队列中,然后另一个应用程序应该监听队列来处理消息。
我成功地将消息发布到队列,我可以看到 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);
}
}
两个应用程序中的 ConnectionString 相同,因此没有区别。
这是我用来连接并向队列发送消息的代码。
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);
如果有人对发生这种情况的原因有任何见解,我们将不胜感激。
所以事实证明,我在尝试连接到服务总线时 运行 遇到了 407 需要代理身份验证错误,我在尝试通过其他应用程序进行调试时注意到了这一点。
我所要做的就是将以下内容添加到 web.config 的 system.net 部分,一旦我这样做,我就能够接收消息。
<defaultProxy useDefaultCredentials="true">
<proxy bypassonlocal="True" usesystemdefault="True"/>
</defaultProxy>
我正在关注如何在 Azure 文档中使用服务总线队列的文档。
我创建了 2 个不同的 Web 应用程序来测试使用队列来处理我需要处理的项目。我创建了一个项目来将消息发布到队列中,然后另一个应用程序应该监听队列来处理消息。
我成功地将消息发布到队列,我可以看到 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);
}
}
两个应用程序中的 ConnectionString 相同,因此没有区别。 这是我用来连接并向队列发送消息的代码。
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);
如果有人对发生这种情况的原因有任何见解,我们将不胜感激。
所以事实证明,我在尝试连接到服务总线时 运行 遇到了 407 需要代理身份验证错误,我在尝试通过其他应用程序进行调试时注意到了这一点。 我所要做的就是将以下内容添加到 web.config 的 system.net 部分,一旦我这样做,我就能够接收消息。
<defaultProxy useDefaultCredentials="true">
<proxy bypassonlocal="True" usesystemdefault="True"/>
</defaultProxy>