Ejemplo n.º 1
0
        /// <summary>
        /// Start the server.
        /// </summary>
        public void Start()
        {
            try
            {
                // Start the server.
                if (_server != null)
                {
                    _server.Start();
                }
            }
            catch (Exception)
            {
                if (_server != null)
                {
                    _server.Dispose();
                }

                if (_appHostDomain != null)
                {
                    _appHostDomain.Dispose();
                }

                _server        = null;
                _appHostDomain = null;
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Start the server.
        /// </summary>
        public void Start()
        {
            try
            {
                // Start the server.
                if (_httpServer != null)
                {
                    _httpServer.Start();
                }
            }
            catch (Exception)
            {
                if (_httpServer != null)
                {
                    _httpServer.Dispose();
                }

                _httpServer = null;
                throw;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initialise the server.
        /// </summary>
        private void Init()
        {
            try
            {
                // Create the server endpoint.
                Nequeo.Net.Sockets.MultiEndpointModel[] model = new Nequeo.Net.Sockets.MultiEndpointModel[]
                {
                    // None secure.
                    new Nequeo.Net.Sockets.MultiEndpointModel()
                    {
                        Port      = Nequeo.Net.Properties.Settings.Default.HttpStaticSingleServerListeningPort,
                        Addresses = new System.Net.IPAddress[]
                        {
                            System.Net.IPAddress.IPv6Any,
                            System.Net.IPAddress.Any
                        }
                    },
                    // Secure.
                    new Nequeo.Net.Sockets.MultiEndpointModel()
                    {
                        Port      = Nequeo.Net.Properties.Settings.Default.HttpStaticSingleServerListeningPortSecure,
                        Addresses = new System.Net.IPAddress[]
                        {
                            System.Net.IPAddress.IPv6Any,
                            System.Net.IPAddress.Any
                        }
                    }
                };

                // Start the server.
                _httpServer                   = new Nequeo.Net.Http.HttpServerSingle(model);
                _httpServer.Name              = "Application Server";
                _httpServer.OnHttpContext    += HttpContext;
                _httpServer.OnClientConnected = (context) => ClientConnected(context);
                _httpServer.Timeout           = 30;
                _httpServer.ReadBufferSize    = 32768;
                _httpServer.WriteBufferSize   = 32768;

                // Get the certificate reader.
                Nequeo.Security.Configuration.Reader certificateReader = new Nequeo.Security.Configuration.Reader();

                // Inititalise.
                _httpServer.Initialisation();

                try
                {
                    // Look for the certificate information in the configuration file.

                    // Get the certificate if any.
                    X509Certificate2 serverCertificate = certificateReader.GetServerCredentials();

                    // If a certificate exists.
                    if (serverCertificate != null)
                    {
                        // Get the secure servers.
                        _httpServer.Server[2].UseSslConnection = true;
                        _httpServer.Server[2].X509Certificate  = serverCertificate;
                        _httpServer.Server[3].UseSslConnection = true;
                        _httpServer.Server[3].X509Certificate  = serverCertificate;
                    }
                }
                catch { }
            }
            catch (Exception)
            {
                if (_httpServer != null)
                {
                    _httpServer.Dispose();
                }

                _httpServer = null;
                throw;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initialise the server.
        /// </summary>
        private void Init()
        {
            try
            {
                // Create application host domain.
                _appHostDomain = new AppHostDomain(_basePath, _virtualDir, _configurationFile);

                string socketProviderHostPrefix   = "HttpDynamicServerSingle_";
                string hostProviderFullName       = socketProviderHostPrefix + "SocketProviderV6";
                string hostProviderFullNameSecure = socketProviderHostPrefix + "SocketProviderV6Ssl";

                // Get the certificate reader.
                Nequeo.Security.Configuration.Reader certificateReader = new Nequeo.Security.Configuration.Reader();
                Nequeo.Net.Configuration.Reader      hostReader        = new Nequeo.Net.Configuration.Reader();

                // Create the server endpoint.
                Nequeo.Net.Sockets.MultiEndpointModel[] model = new Nequeo.Net.Sockets.MultiEndpointModel[]
                {
                    // None secure.
                    new Nequeo.Net.Sockets.MultiEndpointModel()
                    {
                        Port      = hostReader.GetServerHost(hostProviderFullName).Port,
                        Addresses = new System.Net.IPAddress[]
                        {
                            System.Net.IPAddress.IPv6Any,
                            System.Net.IPAddress.Any
                        }
                    },
                    // Secure.
                    new Nequeo.Net.Sockets.MultiEndpointModel()
                    {
                        Port      = hostReader.GetServerHost(hostProviderFullNameSecure).Port,
                        Addresses = new System.Net.IPAddress[]
                        {
                            System.Net.IPAddress.IPv6Any,
                            System.Net.IPAddress.Any
                        }
                    }
                };

                // Start the server.
                _server                   = new Nequeo.Net.Http.HttpServerSingle(model, hostReader.GetServerHost(hostProviderFullName).MaxNumClients);
                _server.Name              = "Application Server";
                _server.OnHttpContext    += HttpContext;
                _server.OnClientConnected = (context) => ClientConnected(context);
                _server.Timeout           = hostReader.GetServerHost(hostProviderFullName).ClientTimeOut;
                _server.ReadBufferSize    = 32768;
                _server.WriteBufferSize   = 32768;

                // Inititalise.
                _server.Initialisation();

                try
                {
                    // Look for the certificate information in the configuration file.

                    // Get the certificate if any.
                    X509Certificate2 serverCertificate = certificateReader.GetServerCredentials();

                    // If a certificate exists.
                    if (serverCertificate != null)
                    {
                        // Get the secure servers.
                        _server.Server[2].UseSslConnection = true;
                        _server.Server[2].X509Certificate  = serverCertificate;
                        _server.Server[3].UseSslConnection = true;
                        _server.Server[3].X509Certificate  = serverCertificate;
                    }
                }
                catch { }

                // Create the application host.
                _appHostDomain.CreateApplicationHost();
            }
            catch (Exception)
            {
                if (_server != null)
                {
                    _server.Dispose();
                }

                if (_appHostDomain != null)
                {
                    _appHostDomain.Dispose();
                }

                _server        = null;
                _appHostDomain = null;
                throw;
            }
        }