public override void Start(System.Net.HttpListenerContext context) { Logger.LogDebug("Starting sdb web site"); XmlDocument options = context.GetRequestDataAsXml(); int start_port = MonoToolsConfigurationManager.ApplicationPortRangeStart; int end_port = MonoToolsConfigurationManager.ApplicationPortRangeEnd; host = context.Request.LocalEndPoint.Address; for (sdb_port = start_port; sdb_port <= end_port; sdb_port++) { Logger.LogDebug(" Trying to start with sdb port: {0}", sdb_port); XspSession session = StartXspSession(options); if (session == null) { Logger.LogDebug(" sdb on port {0} failed", sdb_port); continue; } Logger.LogDebug(" sdb port {0} is good, returning to VS", sdb_port); is_started = true; context.WriteString(ToXml()); return; } Logger.LogDebug(" Ran out of sdb ports to use: {0}-{1}.", start_port, end_port); context.ReturnException(new ApplicationException("Could not find an available sdb port to use.")); }