private static void InitSilo(string[] args) { SiloHost.silo = new OrleansAzureSilo(); var siloConfiguration = new OrleansConfiguration(); siloConfiguration.Load(new StringReader(args[0])); SiloHost.siloStartResult = silo.Start( deploymentId: RoleEnvironment.DeploymentId, myRoleInstance: RoleEnvironment.CurrentRoleInstance, config: siloConfiguration); SiloHost.orleansSiloTask = Task.Factory.StartNew(() => { SiloHost.silo.Run(); }); }
static void Main(string[] args) { // The Orleans silo environment is initialized in its own app domain in order to more // closely emulate the distributed situation, when the client and the server cannot // pass data via shared memory. AppDomain hostDomain = AppDomain.CreateDomain("OrleansHost", null, new AppDomainSetup { AppDomainInitializer = InitSilo, AppDomainInitializerArguments = args, }); var r = System.IO.File.OpenText(@"C:\DemoTd15Orleans\devTd15Orleans\SiloHost1\CityPowerSilo\OrleansConfiguration.xml"); OrleansConfiguration cfg = new OrleansConfiguration(r); // TODO: once the previous call returns, the silo is up and running. // This is the place your custom logic, for example calling client logic // or initializing an HTTP front end for accepting incoming requests. Console.WriteLine("***************************************"); Console.WriteLine("Orleans Silo is running.\nPress Enter to terminate..."); Console.ReadLine(); hostDomain.DoCallBack(ShutdownSilo); }