public ChutzpahWebServerHost CreateServer(ChutzpahWebServerConfiguration configuration) { if (ChutzpahWebServerHost.ActiveWebServer != null && ChutzpahWebServerHost.ActiveWebServer.RootPath.Equals(configuration.RootPath, StringComparison.OrdinalIgnoreCase)) { // If the requested server is already running just re-use it return(ChutzpahWebServerHost.ActiveWebServer); } var hostConfiguration = new HostConfiguration { RewriteLocalhost = true, UrlReservations = new UrlReservations { CreateAutomatically = true } }; var port = GetNextAvailablePort(configuration.DefaultPort.Value); var builtInDependencyFolder = fileProbe.BuiltInDependencyDirectory; ChutzpahTracer.TraceInformation("Creating Web Server Host at path {0} and port {1}", configuration.RootPath, port); var host = new NancyHost(new Uri(string.Format("http://localhost:{0}", port)), new NancySettingsBootstrapper(configuration.RootPath, builtInDependencyFolder), hostConfiguration); host.Start(); var chutzpahWebServerHost = ChutzpahWebServerHost.Create(host, configuration.RootPath, port); return(chutzpahWebServerHost); }
public ChutzpahWebServerConfiguration(ChutzpahWebServerConfiguration configurationToCopy) { Enabled = configurationToCopy.Enabled; DefaultPort = configurationToCopy.DefaultPort; RootPath = configurationToCopy.RootPath; FileCachingEnabled = configurationToCopy.FileCachingEnabled; }
public IChutzpahWebServerHost CreateServer(ChutzpahWebServerConfiguration configuration, IChutzpahWebServerHost activeWebServerHost) { if (activeWebServerHost != null && activeWebServerHost.IsRunning && activeWebServerHost.RootPath.Equals(configuration.RootPath, StringComparison.OrdinalIgnoreCase)) { // If the requested server is already running just re-use it return(activeWebServerHost); } var builtInDependencyFolder = fileProbe.BuiltInDependencyDirectory; return(BuildHost(configuration.RootPath, configuration.DefaultPort.Value, builtInDependencyFolder)); }