none
como Parar/Inicializar serviço do firebird via código c# RRS feed

  • Pergunta

  •  

    estou precisando que minha aplicação (é feita em windows form) pare o serviço ou inicialize via código c#, sendo que quero parar/inicializar o serviço em uma máquina local e também vou precisar pararinicializar em uma máquina não local, ou seja devo precisar parar ou reiniciar o serviço em uma máquina na rede... Quem puder me ajudar eu agradeceria muito.
    domingo, 3 de fevereiro de 2008 04:09

Todas as Respostas

  •  

    A minha sugestão é que você crie dois arquivos *.bat. Um para parar e outro para inicializar o seriviço.

    Feito isso, basta usar a classe process pra chamar o batch.

     

    No arquivo que pára o serviço, a linha de comando é

     

    Code Snippet

    NET STOP "FireBird Server - DefaultInstance"

     

     

    e o arquivo que starta o serviço:

     

    Code Snippet
    NET START "FireBird Server - DefaultInstance"

     

     

    Lembrando que você precisa conferir no painel de controle > ferramentas administrativas > serviços  se o nome do serviço do firebird que vc instalou é mesmo "FireBird Server - DefaultInstance". Pode ser que você tenha dado outro nome a instância.

     

    Abaixo segue um exemplo de código que você deve usar para chamar os arquivos.

    Faça as modificações para adequa-lo a sua aplicação.

     

    //Evite deixar esse valor hardcoded. Passe-o para um arquivo de configuração (app.settings, web.config, ou uma classe serializada)

    const string STARTFILE = @"c:\firebirdstart.bat";

    const string STOPFILE = @"c:\firebirdstop.bat";

    private void btnIniciar_Click(object sender, EventArgs e)

    {

    int resultado = this.StartService();

    MessageBox.Show(resultado.ToString());

    }

    private void btnParar_Click(object sender, EventArgs e)

    {

    int resultado = this.StopService();

    MessageBox.Show(resultado.ToString());

    }

    int StartService()

    {

    return this.ManageFirebirdService(STARTFILE);

    }

    int StopService()

    {

    return ManageFirebirdService(STOPFILE);

    }

    int ManageFirebirdService(string pBatchFile)

    {

    Process proc = Process.Start(this.GetProcess(pBatchFile));

    if (proc.HasExited)

    return proc.ExitCode; //Se houve algum erro, retorna o código de saída

    else

    return 0;

    }

    ProcessStartInfo GetProcess(string pFile)

    {

    ProcessStartInfo psi = new ProcessStartInfo(pFile);

    psi.RedirectStandardOutput = true;

    psi.RedirectStandardInput = true;

    psi.UseShellExecute = false;

    psi.CreateNoWindow = true;

    return psi;

    }

     

    Grande abraço

    • Sugerido como Resposta FranciscoEdson sexta-feira, 19 de agosto de 2011 14:08
    segunda-feira, 11 de fevereiro de 2008 15:04