示例#1
0
        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."));
        }