Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法连接到远程RabbitMQ服务器_C#_Rabbitmq_Remote Access_Masstransit - Fatal编程技术网

C# 无法连接到远程RabbitMQ服务器

C# 无法连接到远程RabbitMQ服务器,c#,rabbitmq,remote-access,masstransit,C#,Rabbitmq,Remote Access,Masstransit,我正在创建一个客户端应用程序,其思想是将新消息发布到远程RabbitMQ队列。我正在使用MassTransit创建此客户端,我的代码如下所示: static IBusControl CreateBus() { return Bus.Factory.CreateUsingRabbitMq(x => { var host = x.Host(new Uri(ConfigurationManager.

我正在创建一个客户端应用程序,其思想是将新消息发布到远程RabbitMQ队列。我正在使用MassTransit创建此客户端,我的代码如下所示:

    static IBusControl CreateBus()
    {
        return Bus.Factory.CreateUsingRabbitMq(x =>
        {             
            var host = x.Host(new Uri(ConfigurationManager.AppSettings["RabbitMQHost"]), h =>
            {
                h.Username("user");
                h.Password("password");
            });

        });
    }

    static IRequestClient<ISyncProject, IProjectSynced> CreateRequestClient(IBusControl busControl)
    {
        var serviceAddress = new Uri(ConfigurationManager.AppSettings["ServiceAddress"]);
        IRequestClient<ISyncProject, IProjectSynced> client =
            busControl.CreateRequestClient<ISyncProject, IProjectSynced>(serviceAddress, TimeSpan.FromDays(1));

        return client;
    }

    private static async Task MainLogic(IBusControl busControl)
    {
        IRequestClient<ISyncProject, IProjectSynced> client = CreateRequestClient(busControl);

       //I'm using the client here as I show below, this part is not important it works with localhost
        IProjectSynced response = await client.Request(new ProjecToSync() { OriginalOOMID = OriginalOOMID });
    }
静态IBusControl CreateBus()
{
返回Bus.Factory.CreateUsingRabbitMq(x=>
{             
var host=x.host(新Uri(ConfigurationManager.AppSettings[“RabbitMQHost]”),h=>
{
h、 用户名(“用户”);
h、 密码(“密码”);
});
});
}
静态IRequestClient CreateRequestClient(IBusControl总线控制)
{
var serviceAddress=新Uri(ConfigurationManager.AppSettings[“serviceAddress”]);
IRequestClient客户端=
CreateRequestClient(serviceAddress,TimeSpan.FromDays(1));
返回客户;
}
专用静态异步任务主逻辑(IBusControl总线控制)
{
IRequestClient=CreateRequestClient(总线控制);
//我在这里使用的是客户机,如下所示,这部分并不重要,它与localhost一起工作
IProjectSynced response=wait client.Request(新项目同步(){originalomid=originalomid});
}
配置文件如下所示:

<appSettings>
<add key="RabbitMQHost" value="rabbitmq://ServerName" />
<add key="ServiceQueueName" value="queueName" />
<add key="ServiceAddress" value="rabbitmq://ServerName/queueName" />
</appSettings>

现在,如果我在运行RabbitMQ的同一台服务器上运行客户端应用程序,并且通过
localhost
更改
ServerName
,那么这段代码就可以工作了。如果我在本地计算机上使用服务器的任何服务器名或IP地址运行客户端,RabbitMQ将阻止我的连接:

我想这是必须与一些配置,我需要在服务器上做,但我还没有找到它迄今为止

我现在注意到的一件事是磁盘空间是红色的,并且已经创建了大量的通用交换

如您的问题所示,在底部您有一个连接,但它被阻止了


列出了连接被阻止的一些情况。这些通常与代理机器本身的资源限制有关。在本例中,我们成功地获得了一个清晰的图像,即代理可用的可用磁盘空间低于其下限。因此,在解决此问题之前,所有连接都将被阻止(要么降低标记-不推荐,要么增加可用空间)。

您缺少一些急需的细节。你犯了什么错误?这台机器在同一子网上还是在不同的子网上?是否有防火墙或其他直通设备可能会造成阻碍?是的,同一个子网,我刚刚看到最后一张图片。因此,如果说“阻塞”是问题所在,那么这篇文章中的其他内容就无关紧要了。有一个描述条件的列表-你看过了吗?是的,我看到了,但是如果连接被阻止了,就要通知它,对吗?可能是serverNo的防火墙,阻塞是服务器在资源出现问题时所做的事情。你还没有提供任何关于服务器的细节,所以我甚至不能推测。内存还是磁盘空间?