public void Configure(Server server, int port, string virtualPath, string physicalPath)
        {
            _server = server;

            _port = port;
            _installPath = null;
            _virtualPath = virtualPath;
            _appType = server.AppType;

            _lowerCasedVirtualPath = CultureInfo.InvariantCulture.TextInfo.ToLower(_virtualPath);
            _lowerCasedVirtualPathWithTrailingSlash = virtualPath.EndsWith("/", StringComparison.Ordinal) ? virtualPath : virtualPath + "/";
            _lowerCasedVirtualPathWithTrailingSlash = CultureInfo.InvariantCulture.TextInfo.ToLower(_lowerCasedVirtualPathWithTrailingSlash);
            _physicalPath = physicalPath;
            _physicalClientScriptPath = HttpRuntime.AspClientScriptPhysicalPath + "\\";
            _lowerCasedClientScriptPathWithTrailingSlash = CultureInfo.InvariantCulture.TextInfo.ToLower(HttpRuntime.AspClientScriptVirtualPath + "/");
        }
        private void Start()
        {
            try
            {
                AppType type = rdWebForms.Checked ? AppType.WebForms : AppType.MVC; //default only MVC and Webforms are present, no need for complex validation

                Server = new Server((int)nudPort.Value, txtVirtRoot.Text, txtAppPath.Text, rdbAny.Checked ? IPAddress.Any : IPAddress.Loopback, type);

                // Register event handlers
                Server.Started += new EventHandler(ServerStarted);
                Server.Stopped += new EventHandler(ServerStopped);

                Server.Start();
                this.Status = WebServer.Utilities.Status.Online;
            }
            catch
            {
                ShowError("PiW Managed Web Server failed to start listening on port " + nudPort.Value + ".\r\n" +
                          "Possible conflict with another Web Server on the same port.");
            }
        }
		public Request(Server server, Host host, Connection connection) : base(String.Empty, String.Empty, null)
		{
			Server = server;
			Host = host;
			Connection = connection;

            ProcessorChain = RequestProcessorChainBuilder.Current.Build();
		}
		public Connection(Server server, Socket socket)
		{
			_server = server;
			_socket = socket;
		}