2017-01-03 36 views
3

ここに接続コードがあります。RabbitMQ CreateConnecitonの問題 - あるアプリケーションでは動作しますが、別のアプリケーションでは動作しません

var factory = new ConnectionFactory 
{ 
    HostName = "myserver", 
    UserName = "testuser", 
    Password = "testuserpassword" 
}; 

using (var connection = factory.CreateConnection()) 
using (var channel = connection.CreateModel()) 
     { 
      channel.QueueDeclare(queue: "LOG", 
           durable: false, 
           exclusive: false, 
           autoDelete: false, 
           arguments: null); 

      string message = "Hello World!"; 
      var body = Encoding.UTF8.GetBytes(message); 

      channel.BasicPublish(exchange: "", 
           routingKey: "LOG", 
           basicProperties: null, 
           body: body); 
      Console.WriteLine(" [x] Sent {0}", message); 
     } 

これはコンソールアプリケーションでテストしても問題なく動作し、メッセージを送受信できます。

私はコピーして、私のWPFアプリに上から同じコードを貼り付ける場合は、私がスローされた例外ここ

connection = factory.CreateConnection() 

例外

例外を取得:RabbitMQの中に「System.ArgumentExceptionの」を。 Client.dll

追加情報:myserverのIPアドレスは解決できません

"myserver"をサーバーのIPに変更すると、同じエラーが発生します。 コードが1つのアプリケーションで動作し、他のアプリケーションで動作しない理由を理解できません。

+0

アクセスしようとしているAPIのURLは何ですか?また、CreateConnection()関数内のコードを表示します。 –

+0

私はそれが適切ではないと思ったのでコードを表示していませんでした。 APIのURL?私は手がかりがありません。私はこのようなチュートリアルを使用しており、API URLは言及していません。 https://www.rabbitmq.com/tutorials/tutorial-four-dotnet.html – Gaz83

+0

API URLは、Googleにメッセージを投稿する場所です。私はあなたに接続とPOSTメッセージを作成するサンプルコードを表示することができますが、それが役に立つかどうかはわかりません。だから私はどのように接続を作成しているのか正確に見てみたかった。 –

答えて

2

問題を解決しました。 Exceptionの設定と同じような単純なものだったようです。何らかの理由で、コンソールアプリケーションが接続例外で中断しないように設定されていて、WPFアプリケーションが中断するように設定されていました。すべてが今働きます。

例外が生成されていること、特にサーバー名またはIPアドレスが解決されていないことについては奇妙ですが、依然として機能しています。

+0

うれしいです。 –

+0

変更した例外設定は何ですか?私は同じ問題にぶつかった – John

関連する問題