public void Start() { var configuration = new DashboardConfiguration { ServerUri = new Uri("http://localhost:8085"), EnablePackageUploads = false, ServicesLocation = "Services", PackageStore = "Packages" }; TinyIoC.TinyIoCContainer.Current.Register(configuration); if (StartHttpListener(configuration)) { ConfigurePackageUploads(configuration); } }
static void ConfigurePackageUploads(DashboardConfiguration configuration) { // ServicesLocation string servicesLocation = ConfigurationManager.AppSettings["ServicesLocation"]; if (!string.IsNullOrEmpty(servicesLocation)) configuration.ServicesLocation = servicesLocation; // DashboardUploadsEnable string enablePackageUploadsValue = ConfigurationManager.AppSettings["DashboardUploadsEnable"]; bool enablePackageUploads = false; if (bool.TryParse(enablePackageUploadsValue, out enablePackageUploads)) configuration.EnablePackageUploads = enablePackageUploads; // DashboardUploadsPackageFolder string packageStore = ConfigurationManager.AppSettings["DashboardUploadsPackageFolder"]; if (! string.IsNullOrEmpty(packageStore)) configuration.PackageStore = packageStore; }
bool StartHttpListener(DashboardConfiguration configuration) { string listenUrl = ConfigurationManager.AppSettings["DashboardUri"]; if (! string.IsNullOrEmpty(listenUrl)) { try { configuration.ServerUri = new Uri(listenUrl); } catch (Exception ex) { _log.Error("Incorrect DashboardUri format. Using the default setting.", ex); } } _log.InfoFormat("Loading dashboard at Uri: {0}", configuration.ServerUri); try { _nancyHost = new NancyHost(configuration.ServerUri); _nancyHost.Start(); } catch (HttpListenerException ex) { _nancyHost = null; if (ex.Message == "Access is denied") { string enableCommand = string.Format(@"netsh http add urlacl url=http://+:{0}{1} user=your_domain\service_user", configuration.ServerUri.Port, configuration.ServerUri.AbsolutePath); _log.Error("Failed to initialize HTTP listener.\r\nThe process is not allowed listening on the specified port without permission.\r\nConsider running the following command: " + enableCommand, ex); } else _log.Error("Failed to initialize HTTP listener.", ex); } catch (Exception ex) { _nancyHost = null; _log.Error("Failed to initialize HTTP listener.", ex); } return _nancyHost != null; }