예제 #1
0
        public void Start(object listener, Action <RemoteDomainExpression> configuration = null)
        {
            _runner = RemoteServiceRunner.For <RemoteFubuMvcBootstrapper>(x => {
                x.RequireAssemblyContainingType <EmbeddedFubuMvcServer>(AssemblyCopyMode.SemVerCompatible);
                x.RequireAssemblyContainingType <RemoteFubuMvcProxy>(AssemblyCopyMode.SemVerCompatible);
                x.RequireAssemblyContainingType <RemoteServiceRunner>(AssemblyCopyMode.SemVerCompatible);
                x.RequireAssemblyContainingType <Owin.IAppBuilder>();
                x.RequireAssemblyContainingType <IActivator>();                                       // Bottles
                x.RequireAssemblyContainingType <IModelBinder>();                                     // FubuCore
                x.RequireAssemblyContainingType <FubuApplication>(AssemblyCopyMode.SemVerCompatible); // FubuMVC.Core
                x.RequireAssemblyContainingType <HtmlTag>(AssemblyCopyMode.SemVerCompatible);         // HtmlTags
                x.RequireAssemblyContainingType <FubuCsProjFile.CodeFile>();                          // FubuCsProjFile just to keep it from whining
                x.RequireAssemblyContainingType <DiagnosticChainsSource>(AssemblyCopyMode.SemVerCompatible);
                x.RequireAssemblyContainingType <SparkViewEngine>(AssemblyCopyMode.SemVerCompatible);
                x.RequireAssemblyContainingType <SparkTemplate>(AssemblyCopyMode.SemVerCompatible);

                x.RequireAssembly("Microsoft.Owin.Hosting");
                x.RequireAssembly("Microsoft.Owin.Host.HttpListener");
                x.RequireAssembly("Microsoft.Owin");
                x.RequireAssembly("Owin");

                x.ServiceDirectory = _request.DirectoryFlag;

                if (_request.ConfigFlag.IsNotEmpty())
                {
                    x.Setup.ConfigurationFile = _request.ConfigFlag;
                }

                x.Setup.PrivateBinPath = _request.DetermineBinPath();

                if (configuration != null)
                {
                    configuration(x);
                }

                Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath);
                Console.WriteLine("The configuration file is " + x.Setup.ConfigurationFile);
            });

            _runner.WaitForServiceToStart <RemoteFubuMvcBootstrapper>();

            _runner.Messaging.AddListener(listener);



            _runner.SendRemotely(new StartApplication
            {
                ApplicationName              = _request.ApplicationFlag,
                PhysicalPath                 = _request.DirectoryFlag,
                PortNumber                   = PortFinder.FindPort(_request.PortFlag),
                UseProductionMode            = _request.ProductionModeFlag,
                AutoRefreshWebSocketsAddress = _request.AutoRefreshWebSocketsAddress
            });
        }
예제 #2
0
        public void Start(object listener, Action <RemoteDomainExpression> configuration = null)
        {
            _runner = RemoteServiceRunner.For <RemoteFubuMvcBootstrapper>(x => {
                x.RequireAssemblyContainingType <EmbeddedFubuMvcServer>();
                x.RequireAssemblyContainingType <RemoteFubuMvcProxy>();
                x.RequireAssemblyContainingType <RemoteServiceRunner>();
                x.RequireAssemblyContainingType <Owin.IAppBuilder>();
                x.RequireAssemblyContainingType <IActivator>();              // Bottles
                x.RequireAssemblyContainingType <IModelBinder>();            // FubuCore
                x.RequireAssemblyContainingType <StringToken>();             // FubuLocalization
                x.RequireAssemblyContainingType <FubuApplication>();         // FubuMVC.Core
                x.RequireAssemblyContainingType <FubuCsProjFile.CodeFile>(); // FubuCsProjFile just to keep it from whining

                x.RequireAssembly("Owin.Extensions");
                x.RequireAssembly("Newtonsoft.Json");
                x.RequireAssembly("FubuMVC.OwinHost");
                x.RequireAssembly("Microsoft.Owin.Hosting");
                x.RequireAssembly("Microsoft.Owin.Host.HttpListener");
                x.RequireAssembly("Microsoft.Owin");
                x.RequireAssembly("Owin");

                x.ServiceDirectory = _request.DirectoryFlag;

                x.Setup.PrivateBinPath = _request.DetermineBinPath();

                if (configuration != null)
                {
                    configuration(x);
                }

                Console.WriteLine("Assembly bin path is " + x.Setup.PrivateBinPath);
            });

            _runner.WaitForServiceToStart <RemoteFubuMvcBootstrapper>();

            _runner.Messaging.AddListener(listener);



            _runner.SendRemotely(new StartApplication
            {
                ApplicationName   = _request.ApplicationFlag,
                PhysicalPath      = _request.DirectoryFlag,
                PortNumber        = PortFinder.FindPort(_request.PortFlag),
                UseProductionMode = _request.ProductionModeFlag
            });
        }