Пример #1
0
        public async Task <TaskResult> RunAsync()
        {
            using (var iis = new IISTools(Context)) {
                await iis.ApplicationPool.StartAsync(Configuration.AppPoolName, TimeSpan.FromMinutes(1));
            }

            return(TaskResult.Ok());
        }
        public async Task RunAsync(CancellationToken token)
        {
            // Get the versioned application path
            var appRev = await Context.Applications.GetApplicationRevision(Configuration.Apps.Web.AppName);

            if (appRev == null)
            {
                throw new ApplicationException($"Application revision directory not found for app '{Configuration.Apps.Web.AppName}' revision '{Context.DeploymentNumber}'!");
            }

            using (var iis = new IISTools(Context)) {
                await iis.ApplicationPool.ConfigureAsync(Configuration.AppPoolName, pool => {
                    // Configure AppPool
                    pool.ManagedPipelineMode   = ManagedPipelineMode.Integrated;
                    pool.ManagedRuntimeVersion = "v4.0";
                    pool.AutoStart             = true;

                    // Start Website
                    if (pool.State == ObjectState.Stopped)
                    {
                        pool.Start();
                    }
                }, token);

                await iis.WebSite.ConfigureAsync("Photon Web", 8086, site => {
                    // Configure Website
                    site.ApplicationDefaults.ApplicationPoolName = Configuration.AppPoolName;
                    site.ServerAutoStart = true;

                    // Set Bindings
                    site.Bindings.Clear();
                    site.Bindings.Add("*:8086:localhost", "http");

                    // Update Virtual Path
                    site.Applications[0]
                    .VirtualDirectories["/"]
                    .PhysicalPath = appRev.ApplicationPath;

                    // Start Website
                    if (site.State == ObjectState.Stopped)
                    {
                        site.Start();
                    }
                }, token);
            }
        }