我使用下面的代码连接到 RabbitMQ
factory.UserName = "userid";
factory.Password = "mypass@25";
factory.VirtualHost = "/filestream";
factory.Port = AmqpTcpEndpoint.UseDefaultPort;
factory.HostName = "myrabbitserver";
return factory.CreateConnection();
Run Code Online (Sandbox Code Playgroud)
我想将连接设置更改为以下格式:
amqp://userid:mypass@25@myrabbitserver:5672/filestream
Run Code Online (Sandbox Code Playgroud)
我的密码包含@字符,因此我无法传递 URI
var factory = new ConnectionFactory();
factory.Uri = "amqp://userid:mypass@25@myrabbitserver:5672/filestream";
Run Code Online (Sandbox Code Playgroud)
我最终手动提供工厂的每个属性。有没有一种方法可以通过执行如下操作来告诉 RabbitMQ 我的密码包含 @?
factory.Uri = "amqp://userid:"mypass@25"@myrabbitserver:5672/filestream";
Run Code Online (Sandbox Code Playgroud)
如果我尝试将@密码更改为%40,则在获取连接时会抛出错误
None of the specified endpoints were reachable
Run Code Online (Sandbox Code Playgroud)
小智 8
你可以试试这个:-
string rabbitmqconnection = $"amqp://{HttpUtility.UrlEncode("username")}:
{HttpUtility.UrlEncode("password")}@{"hostname"}
/{HttpUtility.UrlEncode("/vhost")}";
Run Code Online (Sandbox Code Playgroud)
希望这能解决您的问题。
小智 6
您需要输入密码中的URLEncode符号。@
根据你的情况,你可以尝试这个uri:
amqp://userid:mypass%4025@myrabbitserver:5672/filestream
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32262 次 |
| 最近记录: |