2011-02-13 18 views
24

私はここで紛失しているので、私は奇跡を願って集団的な知識に到達しています。ユーザー名とパスワードを使用した場合のRabbitMQ C#接続の問題

私はデフォルトでLinuxボックスにRabbitMQをインストールしました。

このコード(およびデフォルトのRabbitMQインストール構成)を使用すると、すべてうまく動作します。

var connectionFactory = new ConnectionFactory(); 
connectionFactory.HostName = "192.168.0.12"; 
IConnection connection = connectionFactory.CreateConnection(); 

しかし、私はRabbitMQのにユーザーを追加し、次のコードを使用してみてください(ユーザ名とパスワードは無実を保護するために変更されました。:))

var connectionFactory = new ConnectionFactory(); 
connectionFactory.HostName = "192.168.0.12"; 
connectionFactory.UserName = "user"; 
connectionFactory.Password = "password"; 
IConnection connection = connectionFactory.CreateConnection(); 

connectionFactory.CreateConnection()方法は以下をスローします例外:

BrokerUnreachableException  
None of the specified endpoints were reachable 

RabbitMQのログファイルを確認し、私はそれが資格情報文句を見ることができます

{amqp_error,access_refused, 
"PLAIN login refused: user 'user' - invalid credentials", 
'connection.start_ok'}} 

私はユーザー名とパスワードについて確信しており、コーディングの愛に対してはどこにでも解決策を見つけることができません。

私は明らかに何かを見逃しているに違いありませんが、私はそれが何であるか把握できません。 私は役に立つポインタに感謝します。

答えて

30

私自身の問題に対する解決策を見つけたようです。リスニング用

ConnectionFactory factory = new ConnectionFactory(); 
factory.UserName = "user"; 
factory.Password = "password"; 
factory.VirtualHost = "/"; 
factory.Protocol = Protocols.FromEnvironment(); 
factory.HostName = "192.168.0.12"; 
factory.Port = AmqpTcpEndpoint.UseDefaultPort; 
IConnection conn = factory.CreateConnection(); 

感謝をし、おそらくこれは、少なくとも他の誰かに役に立つかもしれません: 次のコードは動作します。 :)

+0

こんにちは!また、メッセージを送信するための接続を確立しようとしています。私は検索したが満足しなかった。私に何かお勧めしますか?つまり、上記のコードを使用する前にrabbitMQサーバーをインストールする必要があります。上記のコードをDLLの参照を追加した後に使用しているので、プロジェクトにエラーはありませんが、stllは上記の例外を示しています。 WEB.Configファイルにいくつか追加する必要もありますか?助けてください。あなたの視点は本当に私を助けるでしょう – Prince

+0

こんにちは!早く回答してくれないのは残念です。私は短い間だけRabbitMQで遊んだので、あまり経験はありません。 RabbitMQインスタンスを実行していることを覚えていますので、おそらく同様に必要になります。 web.configファイルに関しては、私がそれを使ったことがあるのか​​どうかわかりません。 – Freddy

+0

FWIW、私の目立つ行は 'VirtualHost'と' Protocol'を設定していました。 –

4

私には受け入れられた答えが機能しませんでした(Windows版)。

私は管理ツールをインストールする必要がありました:

rabbitmq-plugins enable rabbitmq_management 

N.B. rabbitmq-pluginsはC:¥Program Files(x86)¥RabbitMQ Server¥rabbitmq_server-3.3.1¥sbinにあります。

その後、RabbitMQサービスを再起動します。

http://localhost:15672 

N.B.:私はにある管理者のWebサイトを使用することができ、これがインストールされている

install-package easynetq 

は、私は、パッケージマネージャでのVisual StudioでEasyNetQを設置しましたデフォルトのユーザ名とパスワードは次のとおりです。ここからゲスト

、私は、Adminタブを選択し、原因は明確に、画面の上部に黄色で表示されていました:

This user does not have permission to access any virtual hosts. 
Use "Set Permission" below to grant permission to access virtual hosts. 

私はちょうど押された問題を修正するには同じ画面上にボタンを設定してください。

NBこのためには、rabbitmqctl add_user username passwordなど(rabbitmqctlも上記のディレクトリにあります)を使用してユーザーを追加する必要があります。バーチャルホストで

ここ
3

パスワードagentagentと呼ばれるユーザーを作成する方法である、administratorこと、それにreadを与えるためにそれを設定し、writeすべてのキューへのアクセス/

rabbitmqctl add_user agent agent 
rabbitmqctl set_user_tags agent administrator 
rabbitmqctl set_permissions -p/agent ".*" ".*" ".*" 
関連する問題