private bool ParseArguments(string[] args) { string siloName = Dns.GetHostName(); // Default to machine name int siloPort = 9800; int proxyGatewayPort = 9880; int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0]) { case "silo": siloPort = int.Parse(split[1]); break; case "proxy": proxyGatewayPort = int.Parse(split[1]); break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } var config = new ClusterConfiguration(); config.StandardLoad(); config.Defaults.Port = siloPort; config.Defaults.ProxyGatewayEndpoint = new IPEndPoint(config.Defaults.ProxyGatewayEndpoint.Address, proxyGatewayPort); config.Globals.DeploymentId = "BetLab.Meetup"; config.Globals.LivenessType = GlobalConfiguration.LivenessProviderType.Custom; config.Globals.MembershipTableAssembly = "OrleansConsulUtils"; config.Globals.ReminderServiceType = GlobalConfiguration.ReminderServiceProviderType.Disabled; config.Globals.RegisterBootstrapProvider <Dashboard>("Dashboard", new Dictionary <string, string>() { ["Port"] = "8080" }); config.AddStateStorageBasedLogConsistencyProvider(); _siloHost = new SiloHost(siloName, config); return(true); }