2017-03-01 13 views
0

私のネットワーク内でC#プログラムを使用しており、Azure Service Busキューにメッセージを投稿できます。それらを受け取るとき、私はMessageReceiver.Receive()の例外を得る。コードとエラーは以下の通りです。AzureサービスバスMessageReceiver Receive()Webソケットエラー

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このエンドポイントはWebソケットリクエストのみです

ファイアウォール/ポートの問題を示唆している1つの投稿を除き、Web上で何も見つかりません。私はすべての空白のサービスバスのポートをアウトバウンド(9350-9354、80、443)にオープンしていますが、9000がファイアウォールでブロックされている可能性があります。これらは必要ですか?どんな指針も大変ありがとう!あなたの代わりに、ポーリングのOnMessageキューを使用しない理由

Service MessagingCommunication Exception - The End point is only for web socket requests

答えて

0

これはプロキシの問題により修正されました。

コードが実行されていたアカウントは非同期サービスでした。そのアカウントでログインし、IEを開き、接続(LAN)に行き、プロキシチェックボックスを削除する必要がありました(設定を自動的に検出するなど)。これが完了したら、コードはプロキシをバイパスして正常に動作しました。

0

私は思ったんだけど?

 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() 
     }); 
+0

このコードはCRMプラグインの一部です。 CRMプラグインは、私が信じる2分のTTLしか持っていません。サブスクライブパターンには理想的ではありませんが、本質的にキューをポーリングする必要があります。私はしかし、あなたのメソッドを使用してまったく同じエラーを取得します。 – creatiive

+0

あなたが言ったように、ポート9354はローカルに開きますが、ファイアウォールによってブロックされている可能性はまだあります。あなたはファイアウォールのポートを開こうとすることができますか? –

+0

ファイアウォール経由で9354のアウトバウンドが許可されていますが、同じエラーでローカルに送信されます:-( – creatiive

関連する問題