Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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();
        }