1

我正在尝试使用现有的 Consul 集群作为测试 Orleans 应用程序的成员资格提供程序。

将我的客户端应用程序连接到 Silo 时出现此错误

在 Orleans.Runtime.Host.ConsulBasedMembershipTable 中找不到任何网关。奥尔良客户端无法初始化。

深入研究 ConsulUtils 类,正在检索的条目没有定义 ProxyPort - 并且被丢弃 - 因此是空的结果集。

我像这样初始化筒仓:

        var clusterConfiguration = new ClusterConfiguration();
        clusterConfiguration.Globals.DataConnectionString = "http://localhost:8500";
        clusterConfiguration.Globals.DeploymentId = "OrleansPlayground";
        clusterConfiguration.Globals.LivenessType = GlobalConfiguration.LivenessProviderType.Custom;
        clusterConfiguration.Globals.MembershipTableAssembly = "OrleansConsulUtils";
        clusterConfiguration.Globals.ReminderServiceType = GlobalConfiguration.ReminderServiceProviderType.Disabled;

        var silohost = new SiloHost("Fred", clusterConfiguration);

        silohost.InitializeOrleansSilo();
        startup = Task.Factory.StartNew(() =>
        {
            return silohost.StartOrleansSilo();
        });
        return true;

我像这样设置我的客户端应用程序:

        var config = new ClientConfiguration();

        config.CustomGatewayProviderAssemblyName = "OrleansConsulUtils";
        config.DataConnectionString = "http://localhost:8500"; 
        config.DeploymentId = "OrleansPlayground";
        config.GatewayProvider = ClientConfiguration.GatewayProviderType.Custom;

        GrainClient.Initialize(config);

查看 ConsulUtils 中的代码,我可以看到保存条目时未设置 ProxyPort(即为 0)。所以我假设我在初始化筒仓时遇到了问题 - 但我无法弄清楚它是什么!

4

1 回答 1

1

如果不深入挖掘,听起来确实像一个错误。请在 GitHub 上转发,我们会尽力帮助您。

于 2016-10-30T00:20:08.283 回答