Exemple #1
0
        private void Start()
        {
            // use CommandLineArguments as a pre validation tool

            CommandLineArguments args = GetArgs();

            ClearError();

            try
            {
                args.Validate();
            }

            catch (CassiniException ex)
            {
                SetError(ex.Field, ex.Message);
                return;
            }

            IPAddress = args.IPAddress;

            Port = args.Port;

            HostName = args.HostName;

            _server = new Server(args.Port, args.VirtualPath, args.ApplicationPath,
                                 System.Net.IPAddress.Parse(args.IPAddress), args.HostName, args.TimeOut, args.Ntlm,
                                 args.Nodirlist);

            if (args.AddHost)
            {
                HostsFile.AddHostEntry(_server.IPAddress.ToString(), _server.HostName);
            }

            try
            {
                _server.Start();
                _server.TimedOut += OnTimedOut;
                UpdateUIFromServer();
                InvokeSetRunState(RunState.Running);
            }

            catch (Exception ex)
            {
                SetError(ErrorField.None, ex.Message);
                _server.Dispose();
            }
        }
        private static void Main(string[] cmdLine)
        {
            CommandLineArguments args = new CommandLineArguments();

            if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
            {
                Environment.Exit(-1);
            }
            else
            {
                switch (args.RunMode)
                {
                    case RunMode.Server:
                        IPAddress ip=IPAddress.Loopback;
                        try
                        {
                            args.Validate();

                            ip = CommandLineArguments.ParseIP(args.IPMode, args.IPv6, args.IPAddress);
                            int port = args.PortMode == PortMode.FirstAvailable ?
                                CassiniNetworkUtils.GetAvailablePort(args.PortRangeStart, args.PortRangeEnd, ip, true) :
                                args.Port;

                            if(args.AddHost)
                            {
                                HostsFile.AddHostEntry(ip.ToString(), args.HostName);
                            }

                            using (var server =
                                new Server(port, args.VirtualPath, args.ApplicationPath,
                                    ip, args.HostName, args.TimeOut))
                            {
                                server.Start();
                                Console.WriteLine("started: {0}\r\nPress Enter key to exit....", server.RootUrl);
                                Console.ReadLine();
                                server.ShutDown();
                            }
                        }
                        catch (CassiniException ex)
                        {
                            Console.WriteLine("error:{0} {1}",
                                              ex.Field == ErrorField.None
                                                  ? ex.GetType().Name
                                                  : ex.Field.ToString(), ex.Message);
                        }
                        catch (Exception ex2)
                        {
                            Console.WriteLine("error:{0}", ex2.Message);
                            Console.WriteLine(CommandLineParser.ArgumentsUsage(typeof(CommandLineArguments)));
                        }
                        finally
                        {
                            if (args.AddHost)
                            {
                                HostsFile.RemoveHostEntry(ip.ToString(), args.HostName);
                            }

                        }
                        break;
                    case RunMode.Hostsfile:
                        SetHostsFile(args);
                        break;
                }
            }
        }
        private static void Main(string[] cmdLine)
        {
            CommandLineArguments args = new CommandLineArguments();


            if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
            {
                Environment.Exit(-1);
            }
            else
            {
                switch (args.RunMode)
                {
                case RunMode.Server:
                    IPAddress ip = IPAddress.Loopback;
                    try
                    {
                        args.Validate();

                        ip = CommandLineArguments.ParseIP(args.IPMode, args.IPv6, args.IPAddress);
                        int port = args.PortMode == PortMode.FirstAvailable ?
                                   CassiniNetworkUtils.GetAvailablePort(args.PortRangeStart, args.PortRangeEnd, ip, true) :
                                   args.Port;

                        if (args.AddHost)
                        {
                            HostsFile.AddHostEntry(ip.ToString(), args.HostName);
                        }

                        using (var server =
                                   new Server(port, args.VirtualPath, args.ApplicationPath,
                                              ip, args.HostName, args.TimeOut))
                        {
                            server.Start();
                            Console.WriteLine("started: {0}\r\nPress Enter key to exit....", server.RootUrl);
                            Console.ReadLine();
                            server.ShutDown();
                        }
                    }
                    catch (CassiniException ex)
                    {
                        Console.WriteLine("error:{0} {1}",
                                          ex.Field == ErrorField.None
                                                  ? ex.GetType().Name
                                                  : ex.Field.ToString(), ex.Message);
                    }
                    catch (Exception ex2)
                    {
                        Console.WriteLine("error:{0}", ex2.Message);
                        Console.WriteLine(CommandLineParser.ArgumentsUsage(typeof(CommandLineArguments)));
                    }
                    finally
                    {
                        if (args.AddHost)
                        {
                            HostsFile.RemoveHostEntry(ip.ToString(), args.HostName);
                        }
                    }
                    break;

                case RunMode.Hostsfile:
                    SetHostsFile(args);
                    break;
                }
            }
        }
Exemple #4
0
        public static int Main(string[] cmdLine)
        {
            Server server = null;

            if (cmdLine != null && cmdLine.Length > 0)
            {
                bool isVS = Assembly.GetExecutingAssembly()
                    .GetName().Name.StartsWith("WEBDEV.WEBSERVER", StringComparison.OrdinalIgnoreCase);

                CommandLineArguments args = new CommandLineArguments();

                if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
                {
                    if (isVS)
                    {
                        // will display vs usage and return a code that VS understands
                        return ValidateForVS(cmdLine);
                    }

                    string usage = CommandLineParser.ArgumentsUsage(typeof(CommandLineArguments), 120);
                    ShowMessage(usage, MessageBoxIcon.Asterisk);
                    return 0;
                }

                if (args.RunMode == RunMode.Hostsfile)
                {
                    SetHostsFile(args);
                    return 0;
                }

                // now we validate for us.
                int returnValue = -1;
                string message = null;

                try
                {
                    args.VisualStudio = isVS;
                    args.Validate();
                }
                catch (CassiniException ex)
                {
                    switch (ex.Message)
                    {
                        case SR.ErrNoAvailablePortFound:
                        case SR.ErrApplicationPathIsNull:
                            message = ex.Message;
                            break;
                        case SR.ErrInvalidIPMode:
                            message = SR.GetString(ex.Message, args.IPMode);
                            break;
                        case SR.ErrInvalidPortMode:
                            message = SR.GetString(ex.Message, args.PortMode);
                            break;
                        case SR.ErrPortIsInUse:
                            message = SR.GetString(ex.Message, args.Port);
                            break;
                        case SR.ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta:
                            message = SR.GetString(ex.Message, args.PortRangeStart, args.PortRangeEnd);
                            break;
                        case SR.ErrInvalidPortRangeValue:
                            message = SR.GetString(ex.Message,
                                                   ex.Field == ErrorField.PortRangeStart
                                                       ? "start " + args.PortRangeStart
                                                       : "end " + args.PortRangeEnd);
                            break;
                        case SR.ErrInvalidHostname:
                            message = SR.GetString(ex.Message, args.HostName);
                            break;
                        case SR.WebdevDirNotExist:
                            message = SR.GetString(ex.Message, args.ApplicationPath);
                            returnValue = -2;
                            break;
                        case SR.ErrPortOutOfRange:
                            message = SR.GetString(ex.Message, args.Port);
                            break;
                    }

                    if (!args.Silent)
                    {
                        ShowMessage(message, MessageBoxIcon.Asterisk);
                    }
                    return returnValue;
                }
                catch (Exception exception)
                {
                    if (!args.Silent)
                    {
                        ShowMessage(SR.GetString(SR.ErrFailedToStartCassiniDevServerOnPortError, args.Port,
                                                 exception.Message, exception.HelpLink), MessageBoxIcon.Error);
                    }
                    return -1;
                }

                server = new Server(args.Port, args.VirtualPath, args.ApplicationPath, args.Ntlm, args.Nodirlist);

                if (args.AddHost)
                {
                    HostsFile.AddHostEntry(server.IPAddress.ToString(), server.HostName);
                }

                try
                {
                    server.Start();
                }
                catch (Exception exception)
                {
                    if (!args.Silent)
                    {
                        ShowMessage(SR.GetString(SR.ErrFailedToStartCassiniDevServerOnPortError, args.Port,
                                                 exception.Message, exception.HelpLink), MessageBoxIcon.Error);
                    }
                    return -4;
                }

            }

            using (FormView form = new FormView(server))
            {
                Application.Run(form);
            }

            return 0;
        }
Exemple #5
0
        public static int Main(string[] cmdLine)
        {
            Server server = null;

            if (cmdLine != null && cmdLine.Length > 0)
            {
                bool isVS = Assembly.GetExecutingAssembly()
                            .GetName().Name.StartsWith("WEBDEV.WEBSERVER", StringComparison.OrdinalIgnoreCase);

                CommandLineArguments args = new CommandLineArguments();

                if (!CommandLineParser.ParseArgumentsWithUsage(cmdLine, args))
                {
                    if (isVS)
                    {
                        // will display vs usage and return a code that VS understands
                        return(ValidateForVS(cmdLine));
                    }

                    string usage = CommandLineParser.ArgumentsUsage(typeof(CommandLineArguments), 120);
                    ShowMessage(usage, MessageBoxIcon.Asterisk);
                    return(0);
                }


                if (args.RunMode == RunMode.Hostsfile)
                {
                    SetHostsFile(args);
                    return(0);
                }


                // now we validate for us.
                int    returnValue = -1;
                string message     = null;

                try
                {
                    args.VisualStudio = isVS;
                    args.Validate();
                }
                catch (CassiniException ex)
                {
                    switch (ex.Message)
                    {
                    case SR.ErrNoAvailablePortFound:
                    case SR.ErrApplicationPathIsNull:
                        message = ex.Message;
                        break;

                    case SR.ErrInvalidIPMode:
                        message = SR.GetString(ex.Message, args.IPMode);
                        break;

                    case SR.ErrInvalidPortMode:
                        message = SR.GetString(ex.Message, args.PortMode);
                        break;

                    case SR.ErrPortIsInUse:
                        message = SR.GetString(ex.Message, args.Port);
                        break;

                    case SR.ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta:
                        message = SR.GetString(ex.Message, args.PortRangeStart, args.PortRangeEnd);
                        break;

                    case SR.ErrInvalidPortRangeValue:
                        message = SR.GetString(ex.Message,
                                               ex.Field == ErrorField.PortRangeStart
                                                       ? "start " + args.PortRangeStart
                                                       : "end " + args.PortRangeEnd);
                        break;

                    case SR.ErrInvalidHostname:
                        message = SR.GetString(ex.Message, args.HostName);
                        break;

                    case SR.WebdevDirNotExist:
                        message     = SR.GetString(ex.Message, args.ApplicationPath);
                        returnValue = -2;
                        break;

                    case SR.ErrPortOutOfRange:
                        message = SR.GetString(ex.Message, args.Port);
                        break;
                    }

                    if (!args.Silent)
                    {
                        ShowMessage(message, MessageBoxIcon.Asterisk);
                    }
                    return(returnValue);
                }
                catch (Exception exception)
                {
                    if (!args.Silent)
                    {
                        ShowMessage(SR.GetString(SR.ErrFailedToStartCassiniDevServerOnPortError, args.Port,
                                                 exception.Message, exception.HelpLink), MessageBoxIcon.Error);
                    }
                    return(-1);
                }



                server = new Server(args.Port, args.VirtualPath, args.ApplicationPath, args.Ntlm, args.Nodirlist);


                if (args.AddHost)
                {
                    HostsFile.AddHostEntry(server.IPAddress.ToString(), server.HostName);
                }

                try
                {
                    server.Start();
                }
                catch (Exception exception)
                {
                    if (!args.Silent)
                    {
                        ShowMessage(SR.GetString(SR.ErrFailedToStartCassiniDevServerOnPortError, args.Port,
                                                 exception.Message, exception.HelpLink), MessageBoxIcon.Error);
                    }
                    return(-4);
                }
            }

            using (FormView form = new FormView(server))
            {
                Application.Run(form);
            }

            return(0);
        }