我正在使用網絡中的c#程序,並且能夠將消息發佈到Azure服務總線隊列。收到它們時,我會在MessageReceiver.Receive()
上遇到異常情況。代碼和錯誤在下面;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();
}
}
誤差會在
testQueueReceiver.Receive(...);
扔在 '使用' 線服務器拒絕升級請求。 400此端點僅適用於網絡套接字請求
我在網上找不到任何東西,除了一個帖子似乎表明它是防火牆/端口問題。我在本地打開所有天藍色的服務總線端口(9350-9354,80,443),但有可能9000端口在防火牆處被阻塞。它是否需要這些?任何指針將不勝感激!
Service MessagingCommunication Exception - The End point is only for web socket requests
此代碼是CRM插件的一部分。我相信CRM插件只有2分鐘的TTL。雖然它對於訂閱模式並不理想,但我們必須基本輪詢隊列。但是,我確實使用你的方法得到了完全相同的錯誤。 – creatiive
就像你所說的那樣,你在本地打開了9354端口,但仍然有機會被防火牆阻止。你可以嘗試打開防火牆上的端口嗎? –
我有9354出站允許通過防火牆和本地有相同的錯誤:-( – creatiive