public static IDisposable Run(string[] args) { var configuration = ConreignSiloConfiguration.Load( ApplicationPath.CurrentDirectory, args ); var silo = ConreignSilo.Create(configuration); var logger = silo.Logger; var orleansConfiguration = silo.CreateOrleansConfiguration(); var siloHost = new SiloHost(Environment.MachineName, orleansConfiguration); try { siloHost.DeploymentId = configuration.ClusterId; siloHost.InitializeOrleansSilo(); siloHost.StartOrleansSilo(false); logger.Information("Silo is started."); return(siloHost); } catch (Exception ex) { logger.Error(ex, "Failed to start silo."); siloHost.Dispose(); throw; } }
public override void Run() { var env = RoleEnvironment.GetConfigurationSettingValue("Environment"); if (string.IsNullOrEmpty(env)) { throw new InvalidOperationException("Unable to determine environment."); } var config = ConreignSiloConfiguration.Load(Environment.CurrentDirectory, env); config.ClusterId = RoleEnvironment.DeploymentId; config.InstanceId = RoleEnvironment.CurrentRoleInstance.Id; var app = ConreignSilo.Create(config); var orleansConfiguration = app.CreateOrleansConfiguration(); _silo = new AzureSilo(); var started = _silo.Start(orleansConfiguration, app.Configuration.SystemStorageConnectionString); if (!started) { throw new InvalidOperationException("Silo was not started."); } _silo.Run(); }