예제 #1
0
        /// <summary>
        /// Método Main
        /// </summary>
        public static void Main()
        {
            try
            {
                // Log de inicio
                Console.Title = "Point Blank - Core";

                // Configurações
                Logger.Info("Carregando arquivo de configurações");
                ConfigFile configFile = new ConfigFile();

                // Banco de dados
                Logger.Info("Atualizando configurações do banco de dados");
                SessionManager.Inicializar(configFile.DatabaseHost, configFile.DatabasePort, configFile.DatabaseUser, configFile.DatabasePassword, configFile.DatabaseName);

                // Obter nova sessão com banco de dados
                Logger.Info("Inicializando sessão com o banco de dados");
                try
                {
                    SessionManager.ObterNovaSessao();
                }
                catch (Exception exp)
                {
                    Logger.Error(exp, "Verifique as configurações de conexão com o banco de dados", false);
                    return;
                }

                // Atualizar dados a partir da configuração
                Logger.Info("Atualizando configurações de conexões");
                WcfNetwork.Inicializar(configFile.NetworkHost, configFile.NetworkPort);

                // Inicializar serviços (WCF)
                Logger.Info("Inicializando canais WCF");
                foreach (ServiceType servico in ServiceList.ListaServicos)
                {
                    WcfNetwork.IncluirCanalWcfHost(servico);
                }

                Logger.Info("Servidor Inicializado");
            }
            catch (ThreadAbortException)
            {
                Logger.Error("Ocorreu um erro não tratado, todas as conexões serão finalizadas");
                throw;
            }
            catch (Exception exp)
            {
                Logger.Error(exp, "Ocorreu um erro e com isso as conexões serão finalizadas", true);
            }
            finally
            {
                // Não finalizar o servidor
                Process.GetCurrentProcess().WaitForExit();
            }
        }
예제 #2
0
        /// <summary>
        /// Método Main
        /// </summary>
        /// <param name="args">Parâmetro args</param>
        public static void Main()
        {
            try
            {
                // Log de inicio
                Console.Title = "Point Blank - Auth";

                // Configurações
                Logger.Info("Carregando arquivo de configurações");
                ConfigFile configFile = new ConfigFile();

                // Inicializar controles do WCF
                WcfNetwork.Inicializar(configFile.CoreHost, configFile.CorePort);

                // Validar Conexão
                try
                {
                    WcfNetwork.ValidarConexao(configFile.CoreHost, configFile.CorePort);
                }
                catch (Exception exp)
                {
                    Logger.Error(exp, "Validar conexão com servidor (Core)", false);
                    return;
                }

                // Criar/Verificar estrutura padrão
                Logger.Info("Verificando necessidade de criação dos servidores");
                FactoryBo.GameServer(bo => bo.CriarEstruturaPadrao(configFile.NetworkHost, configFile.NetworkPort));

                // Teste
                IList <GameServer> listaTmp = FactoryBo.GameServer(bo => bo.ObterRelacaoTodos());

                // Inciar serviços do servidor
                new GameNetwork(configFile.NetworkHost, configFile.NetworkPort, configFile.ShowHex);
            }
            catch (ThreadAbortException)
            {
                Logger.Error("Ocorreu um erro não tratado, todas as conexões serão finalizadas");
                throw;
            }
            catch (Exception exp)
            {
                Logger.Error(exp, "Ocorreu um erro e com isso as conexões serão finalizadas", true);
            }
            finally
            {
                Process.GetCurrentProcess().WaitForExit();
            }
        }
예제 #3
0
        /// <summary>
        /// Método Main
        /// </summary>
        /// <param name="args">Parâmetro args</param>
        public static void Main()
        {
            try
            {
                // Log de inicio
                Console.Title = "Point Blank - Game";

                // Configurações
                Logger.Info("Carregando arquivo de configurações");
                ConfigFile configFile = new ConfigFile();

                // Inicializar controles do WCF
                WcfNetwork.Inicializar(configFile.CoreHost, configFile.CorePort);

                // Validar Conexão
                try
                {
                    WcfNetwork.ValidarConexao(configFile.CoreHost, configFile.CorePort);
                }
                catch (Exception exp)
                {
                    Logger.Error(exp, "Validar conexão com servidor (Core)", false);
                    return;
                }

                // Inciar serviços do servidor
                new GameNetwork(configFile.NetworkHost, configFile.NetworkPort, configFile.ShowHex);
            }
            catch (ThreadAbortException)
            {
                Logger.Error("Ocorreu um erro não tratado, todas as conexões serão finalizadas");
                throw;
            }
            catch (Exception exp)
            {
                Logger.Error(exp, "Ocorreu um erro e com isso as conexões serão finalizadas", true);
            }
            finally
            {
                Process.GetCurrentProcess().WaitForExit();
            }
        }