Beispiel #1
0
        public void Start(ZetboxConfig config)
        {
            if (container != null) { throw new InvalidOperationException("already started"); }

            Logging.Configure();
            AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

            container = Program.CreateMasterContainer(config);

            wcfServer = container.Resolve<IZetboxAppDomain>();
            wcfServer.Start(config);
        }
Beispiel #2
0
 public override void TearDown()
 {
     lock (typeof(SetUpFixture))
     {
         if (manager != null)
         {
             using (Log.InfoTraceMethodCall("Shutting down"))
             {
                 manager.Stop();
                 manager = null;
             }
         }
     }
 }
Beispiel #3
0
 public override void TearDown()
 {
     lock (typeof(SetUpFixture))
     {
         if (manager != null)
         {
             using (Log.InfoTraceMethodCall("Shutting down"))
             {
                 manager.Stop();
                 manager = null;
             }
         }
     }
 }
Beispiel #4
0
        public void Start(ZetboxConfig config)
        {
            if (container != null)
            {
                throw new InvalidOperationException("already started");
            }

            Logging.Configure();
            AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

            container = Program.CreateMasterContainer(config);

            wcfServer = container.Resolve <IZetboxAppDomain>();
            wcfServer.Start(config);
        }
Beispiel #5
0
        protected override void SetUp(IContainer container)
        {
            base.SetUp(container);
            ResetDatabase(container);

            AutofacServiceHostFactory.Container = container;

            var config = container.Resolve <ZetboxConfig>();

            using (Log.InfoTraceMethodCall("Starting server domain"))
            {
                manager = container.Resolve <IZetboxAppDomain>();
                manager.Start(config);
            }
        }
Beispiel #6
0
        public void Stop()
        {
            lock (_lock)
            {
                if (serverManager != null)
                {
                    try
                    {
                        clientSponsor.Unregister(serverManager as MarshalByRefObject);
                        Logging.Log.Info("Closing client sponsor");
                        clientSponsor.Close();
                        Logging.Log.Info("Stopping server manager");
                        serverManager.Stop();
                        Logging.Log.Info("Unloading AssemblyLoader from server app domain");
                        AssemblyLoader.Unload(serverDomain);
                    }
                    catch (Exception ex)
                    {
                        Logging.Log.Warn("Error during shutdown", ex);
                        throw;
                    }
                }
                else
                {
                    Logging.Log.Error("Tried unloading an already unloaded server manager.");
                }

                clientSponsor = null;
                serverManager = null;

                if (serverDomain != null)
                {
                    Logging.Log.Info("Unloading server app domain");
                    AppDomain.Unload(serverDomain);
                }
                else
                {
                    Logging.Log.Warn("Server app domain already vanished.");
                }

                serverDomain = null;
            }
        }
Beispiel #7
0
        public void Start(ZetboxConfig config)
        {
            if (config == null) { throw new ArgumentNullException("config"); }

            using (Logging.Log.DebugTraceMethodCall("Start", "Starting AppDomain for Server"))
            {
                var serverConfig = new ZetboxConfig()
                {
                    ConfigFilePath = config.ConfigFilePath,
                    ConfigName = config.ConfigName,
                    EnableShadowCopy = config.EnableShadowCopy,
                    HostType = HostType.Server,
                    IsFallback = false,
                    Server = config.Server,
                };

                serverDomain = AppDomain.CreateDomain("ServerAppDomain",
                    AppDomain.CurrentDomain.Evidence,
                    AppDomain.CurrentDomain.SetupInformation);

                AssemblyLoader.Bootstrap(serverDomain, serverConfig);

                serverManager = (IZetboxAppDomain)serverDomain.CreateInstanceAndUnwrap(
                    "Zetbox.Server.Service",
                    "Zetbox.Server.Service.ServerManager");
                serverManager.Start(serverConfig);

                if (clientSponsor == null)
                {
                    clientSponsor = new ClientSponsor();
                    clientSponsor.RenewalTime = TimeSpan.FromMinutes(2);
                }

                clientSponsor.Register(serverManager as MarshalByRefObject);
            }
        }
Beispiel #8
0
        public void Start(ZetboxConfig config)
        {
            using (Logging.Log.DebugTraceMethodCall("Start", "Starting AppDomain for Server"))
            {
                serverDomain = AppDomain.CreateDomain("ServerAppDomain",
                                                      AppDomain.CurrentDomain.Evidence,
                                                      AppDomain.CurrentDomain.SetupInformation);

                AssemblyLoader.Bootstrap(serverDomain, config);

                serverManager = (IZetboxAppDomain)serverDomain.CreateInstanceAndUnwrap(
                    "Zetbox.Server.Service",
                    "Zetbox.Server.Service.ServerManager");
                serverManager.Start(config);

                if (clientSponsor == null)
                {
                    clientSponsor             = new ClientSponsor();
                    clientSponsor.RenewalTime = TimeSpan.FromMinutes(2);
                }

                clientSponsor.Register(serverManager as MarshalByRefObject);
            }
        }
        public void Start(ZetboxConfig config)
        {
            using (Logging.Log.DebugTraceMethodCall("Start", "Starting AppDomain for Server"))
            {
                serverDomain = AppDomain.CreateDomain("ServerAppDomain",
                    AppDomain.CurrentDomain.Evidence,
                    AppDomain.CurrentDomain.SetupInformation);

                AssemblyLoader.Bootstrap(serverDomain, config);

                serverManager = (IZetboxAppDomain)serverDomain.CreateInstanceAndUnwrap(
                    "Zetbox.Server.Service",
                    "Zetbox.Server.Service.ServerManager");
                serverManager.Start(config);

                if (clientSponsor == null)
                {
                    clientSponsor = new ClientSponsor();
                    clientSponsor.RenewalTime = TimeSpan.FromMinutes(2);
                }

                clientSponsor.Register(serverManager as MarshalByRefObject);
            }
        }
Beispiel #10
0
        public void Stop()
        {
            lock (_lock)
            {
                if (serverManager != null)
                {
                    try
                    {
                        clientSponsor.Unregister(serverManager as MarshalByRefObject);
                        Logging.Log.Info("Closing client sponsor");
                        clientSponsor.Close();
                        Logging.Log.Info("Stopping server manager");
                        serverManager.Stop();
                        Logging.Log.Info("Unloading AssemblyLoader from server app domain");
                        AssemblyLoader.Unload(serverDomain);
                    }
                    catch (Exception ex)
                    {
                        Logging.Log.Warn("Error during shutdown", ex);
                        throw;
                    }
                }
                else
                {
                    Logging.Log.Error("Tried unloading an already unloaded server manager.");
                }

                clientSponsor = null;
                serverManager = null;

                if (serverDomain != null)
                {
                    Logging.Log.Info("Unloading server app domain");
                    AppDomain.Unload(serverDomain);
                }
                else
                {
                    Logging.Log.Warn("Server app domain already vanished.");
                }

                serverDomain = null;
            }
        }
Beispiel #11
0
        protected override void SetUp(IContainer container)
        {
            base.SetUp(container);
            ResetDatabase(container);

            AutofacServiceHostFactory.Container = container;

            var config = container.Resolve<ZetboxConfig>();

            using (Log.InfoTraceMethodCall("Starting server domain"))
            {
                manager = container.Resolve<IZetboxAppDomain>();
                manager.Start(config);
            }
        }