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; } } }
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; }
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); }