Azure 服务总线 MessageReceiver Receive() Web 套接字错误
Azure Service Bus MessageReceiver Receive() web sockets error
我正在我的网络中使用 c# 程序,并且能够 post 将消息发送到 Azure 服务总线队列。收到它们时,我在 MessageReceiver.Receive()
上遇到异常。代码和错误如下;
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(QueueConnectionString);
//Receiving a message
MessageReceiver testQueueReceiver = factory.CreateMessageReceiver(QueueName);
using (BrokeredMessage retrievedMessage = testQueueReceiver.Receive(new TimeSpan(0, 0, 20)))
{
try
{
var message = new StreamReader(retrievedMessage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
retrievedMessage.Complete();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
retrievedMessage.Abandon();
}
}
错误在
的 'using' 行抛出
testQueueReceiver.Receive(...);
The server rejected the upgrade request. 400 This endpoint is only for web-socket requests
我在网上找不到任何东西,只有一个 post 除外,这似乎表明它是防火墙/端口问题。我在本地打开了所有出站 azure 服务总线端口(9350-9354、80、443),但 9000 端口有可能在防火墙处被阻止。它应该需要这些吗?任何指针将不胜感激!
Service MessagingCommunication Exception - The End point is only for web socket requests
我只是想知道你为什么不使用 OnMessage
而不是轮询队列?
var connectionString = "";
var queueName = "samplequeue";
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
client.OnMessage(message =>
{
Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
message.Complete()
});
由于一些代理问题,此问题已修复。
代码 运行 所在的帐户是一个异步服务。我需要以该帐户登录,打开 IE 并转到连接 (LAN) 并删除代理复选框(自动检测设置等)。完成此操作后,代码绕过代理并正常运行。
我正在我的网络中使用 c# 程序,并且能够 post 将消息发送到 Azure 服务总线队列。收到它们时,我在 MessageReceiver.Receive()
上遇到异常。代码和错误如下;
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(QueueConnectionString);
//Receiving a message
MessageReceiver testQueueReceiver = factory.CreateMessageReceiver(QueueName);
using (BrokeredMessage retrievedMessage = testQueueReceiver.Receive(new TimeSpan(0, 0, 20)))
{
try
{
var message = new StreamReader(retrievedMessage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
retrievedMessage.Complete();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
retrievedMessage.Abandon();
}
}
错误在
的 'using' 行抛出testQueueReceiver.Receive(...);
The server rejected the upgrade request. 400 This endpoint is only for web-socket requests
我在网上找不到任何东西,只有一个 post 除外,这似乎表明它是防火墙/端口问题。我在本地打开了所有出站 azure 服务总线端口(9350-9354、80、443),但 9000 端口有可能在防火墙处被阻止。它应该需要这些吗?任何指针将不胜感激!
Service MessagingCommunication Exception - The End point is only for web socket requests
我只是想知道你为什么不使用 OnMessage
而不是轮询队列?
var connectionString = "";
var queueName = "samplequeue";
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
client.OnMessage(message =>
{
Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
message.Complete()
});
由于一些代理问题,此问题已修复。
代码 运行 所在的帐户是一个异步服务。我需要以该帐户登录,打开 IE 并转到连接 (LAN) 并删除代理复选框(自动检测设置等)。完成此操作后,代码绕过代理并正常运行。