none
INSTALADOR - PCs em rede ! RRS feed

  • Pergunta

  • Então, deu certo o instalador que o Henrique SJ Rio Preto me indicou, foi bem fácil e bem tranquilo, ele cria um instalador para o framework e o SQL Server na maquina. Por exemplo, eu instalo o framework na maquina e o SQL Server, em seguida crio a base de dados, deixo a maquina funcionando direitinho. Mas vou fazer uma nova pergunta, vamos supor que eu tenho vários PCs em rede. Como fazer para que eu crie em cada estação um executável que acesse a maquina principal (ou o que seria o meu servidor).

     

    Eu fiz um teste compartilhando a pasta onde está o projeto, e criei um atalho em cada maquina que eu desejo executar o programa. Em cada maquina eu instalei o framework e SQL Server. Quando eu executo, ele abre o programa, mas não se comunica com a base de dados.

     

    O que eu devo fazer?

    quinta-feira, 26 de novembro de 2009 14:42

Respostas

  • Eu creio que sua Connection String esta fixa. Outra coisa, o SQL Server 2005 Express, por padrao, é instalado sem suporte a rede (por quetoes de segurança). Existe uma forma de alterar isso, mas eu nao vi ainda qual foi  o metodo que vc usou para a instalaçao.

    Agora uma duvida: porque vc instala o sql em cada maquina se vc vai usar um sql central? Nao seria mais conveniente criar dois instaladores, um para o cliente e outro para o servidor?

    att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quinta-feira, 26 de novembro de 2009 14:53
    Moderador
  • Boa tarde Leandro,

    Para fazer o que você quer você precisa:

    1º - Ter o nome ou ip da máquina que você quer que fique toda a base de dados (SERVIDOR).

    2º - Ter todas as máquinas na mesma rede

    3º - No seu software configurar a string de conexão geramente o arquivo app.config(Windows Forms) ou web.config(WEP), mas pelo que li do seu 1 exemplo você criou uma string de conexao...
    public static SqlConnection GetNovaConexao()
    
            {
    
                SqlConnection connection = null;
    
                connection = new SqlConnection("server=LEANDRO-PC\\SQLEXPRESS;database=Satatement;integrated security=SSPI");
    
                connection.Open();
    
                return connection;
    
            }
    
    Então é so modificar o "server = LEANDRO-PC" para a máquina que vai ser seu servidor de banco de dados tipo: "server = SERVIDOR"

    Att

    Guilherme
    ________________________

    Ajude a melhorar nosso fórum, se foi util marque como resposta!

    quinta-feira, 26 de novembro de 2009 14:56
  • Leandro, boa tarde!

    Não acho legal vc colocar o executavel no servidor e compartilhar a pasta para as outras maquinas acessarem. Acho legal você fazer um novo instalador com o seu programa e o framework (SEM SQL SERVER), e esse instalador vc distribui para as outras maquinas.

    O SQL Server 2005 Express por padrão vem por padrão com conexões remotas bloqueadas, para desbloquear siga os passos abaixo:

    1. Inicie o SQL Server Surface Area através do menu Iniciar ==> Programas ==> Microsoft SQL Server 2005 ==> Configuration Tools ==> SQL Server Surface Area Configuration,
    2. Após iniciar o Surface Area, selecione a opção Surface Area Configuration for Services and Connections,
    3. Selecione o nó SQLEXPRESS,
    4. 
    Em Database Engine clique sobre Remote Connections,
    5.
    Selecione a opção Local and remote connections,
    6. Certifique-se de também deixar selecionada a opção Using TCP/IP only. Esta opção permitirá que o SQL Express passe a aceitar conexões TCP/IP.
    7. Depois de ativar a comunicação TCP/IP, selecione o nó SQL Server Browser,
    8.
     Em Service clique em Start (iniciar) para iniciar o serviço. Este serviço é necessário para que as estações possam se conectar com sucesso ao SQL Express caso ele não esteja usando a porta default 1433.

    OBS: Se você estiver usando o SQL Express sobre o Windows XP SP2, também pode ser preciso desativar o firewall do Windows. Você pode fazer isso acessando o Painel de Controle ==> Windows Firewall.


    Se ajudar, marque como resposta!


    Henrique Tambalo
    quinta-feira, 26 de novembro de 2009 15:55
  • Leandro, 
     
    A máquina está na rede mesmo? Sua string de conexão está correta? O Firewall não está bloqueando?
    Aqui na empresa é dessa maneira e funciona perfeitamente.

    Na connection string coloque assim para testar "server=192.168.0.1,1433;database=Satatement;integrated security

    Onde 192.168.0.1 -> é o IP do servidor que está instalado o SQL SERVER EXPRESS e 1433 é a porta do SQL SERVER EXPRESS.


    Henrique Tambalo
    sexta-feira, 27 de novembro de 2009 16:30
  • Henrique Tambalo, fico grato pela atenção.

     

    Eu fiz da forma que você me orientou, mas ainda não estava funcionando. Aparecia um erro quando eu colocava o numero da porta 1433, daí eu fiquei mexendo até que consegui descobrir o motivo.

    Fiz da seguinte maneira:

     

    a)      IniciaràProgramasà Microsoft SQL Server 2005àConfiguration ToolsàSQL Server Configuration Manager.

    b)     Cliquei no nó do protocolo para SQLEXPRESS, no protocolo TCP/IP  cliquei com o segundo botão do mouse e escolhi propriedades.

    c)      Na TabControl Endereços IP alterei a propriedade do IPAII à porta TCP inclui o numero da porta 1433.

     

    Agora quando coloco o numero do IP mais o numero da porta, ele reconhece e aceita. Não sei se isso é padrão do SQL Server, mas fica aqui registrada minha experiência.

    • Marcado como Resposta Leandro HG quarta-feira, 2 de dezembro de 2009 14:31
    quarta-feira, 2 de dezembro de 2009 14:31

Todas as Respostas

  • Eu creio que sua Connection String esta fixa. Outra coisa, o SQL Server 2005 Express, por padrao, é instalado sem suporte a rede (por quetoes de segurança). Existe uma forma de alterar isso, mas eu nao vi ainda qual foi  o metodo que vc usou para a instalaçao.

    Agora uma duvida: porque vc instala o sql em cada maquina se vc vai usar um sql central? Nao seria mais conveniente criar dois instaladores, um para o cliente e outro para o servidor?

    att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quinta-feira, 26 de novembro de 2009 14:53
    Moderador
  • Boa tarde Leandro,

    Para fazer o que você quer você precisa:

    1º - Ter o nome ou ip da máquina que você quer que fique toda a base de dados (SERVIDOR).

    2º - Ter todas as máquinas na mesma rede

    3º - No seu software configurar a string de conexão geramente o arquivo app.config(Windows Forms) ou web.config(WEP), mas pelo que li do seu 1 exemplo você criou uma string de conexao...
    public static SqlConnection GetNovaConexao()
    
            {
    
                SqlConnection connection = null;
    
                connection = new SqlConnection("server=LEANDRO-PC\\SQLEXPRESS;database=Satatement;integrated security=SSPI");
    
                connection.Open();
    
                return connection;
    
            }
    
    Então é so modificar o "server = LEANDRO-PC" para a máquina que vai ser seu servidor de banco de dados tipo: "server = SERVIDOR"

    Att

    Guilherme
    ________________________

    Ajude a melhorar nosso fórum, se foi util marque como resposta!

    quinta-feira, 26 de novembro de 2009 14:56
  • Leandro, boa tarde!

    Não acho legal vc colocar o executavel no servidor e compartilhar a pasta para as outras maquinas acessarem. Acho legal você fazer um novo instalador com o seu programa e o framework (SEM SQL SERVER), e esse instalador vc distribui para as outras maquinas.

    O SQL Server 2005 Express por padrão vem por padrão com conexões remotas bloqueadas, para desbloquear siga os passos abaixo:

    1. Inicie o SQL Server Surface Area através do menu Iniciar ==> Programas ==> Microsoft SQL Server 2005 ==> Configuration Tools ==> SQL Server Surface Area Configuration,
    2. Após iniciar o Surface Area, selecione a opção Surface Area Configuration for Services and Connections,
    3. Selecione o nó SQLEXPRESS,
    4. 
    Em Database Engine clique sobre Remote Connections,
    5.
    Selecione a opção Local and remote connections,
    6. Certifique-se de também deixar selecionada a opção Using TCP/IP only. Esta opção permitirá que o SQL Express passe a aceitar conexões TCP/IP.
    7. Depois de ativar a comunicação TCP/IP, selecione o nó SQL Server Browser,
    8.
     Em Service clique em Start (iniciar) para iniciar o serviço. Este serviço é necessário para que as estações possam se conectar com sucesso ao SQL Express caso ele não esteja usando a porta default 1433.

    OBS: Se você estiver usando o SQL Express sobre o Windows XP SP2, também pode ser preciso desativar o firewall do Windows. Você pode fazer isso acessando o Painel de Controle ==> Windows Firewall.


    Se ajudar, marque como resposta!


    Henrique Tambalo
    quinta-feira, 26 de novembro de 2009 15:55
  • Boa, muito boa Henrique Tambalo, mas ainda sim, quando executo a aplicação e tento um acesso ao banco de dados, aparece uma mensagem de erro, que diz que não foi possível se conectar ao banco de dados.

     

    Já consegui instalar a aplicação e alterei também as configurações do SQL SERVER como você mencionou, mas o problema persiste.

     

     

    sexta-feira, 27 de novembro de 2009 16:24
  • Leandro, 
     
    A máquina está na rede mesmo? Sua string de conexão está correta? O Firewall não está bloqueando?
    Aqui na empresa é dessa maneira e funciona perfeitamente.

    Na connection string coloque assim para testar "server=192.168.0.1,1433;database=Satatement;integrated security

    Onde 192.168.0.1 -> é o IP do servidor que está instalado o SQL SERVER EXPRESS e 1433 é a porta do SQL SERVER EXPRESS.


    Henrique Tambalo
    sexta-feira, 27 de novembro de 2009 16:30
  • Henrique Tambalo, fico grato pela atenção.

     

    Eu fiz da forma que você me orientou, mas ainda não estava funcionando. Aparecia um erro quando eu colocava o numero da porta 1433, daí eu fiquei mexendo até que consegui descobrir o motivo.

    Fiz da seguinte maneira:

     

    a)      IniciaràProgramasà Microsoft SQL Server 2005àConfiguration ToolsàSQL Server Configuration Manager.

    b)     Cliquei no nó do protocolo para SQLEXPRESS, no protocolo TCP/IP  cliquei com o segundo botão do mouse e escolhi propriedades.

    c)      Na TabControl Endereços IP alterei a propriedade do IPAII à porta TCP inclui o numero da porta 1433.

     

    Agora quando coloco o numero do IP mais o numero da porta, ele reconhece e aceita. Não sei se isso é padrão do SQL Server, mas fica aqui registrada minha experiência.

    • Marcado como Resposta Leandro HG quarta-feira, 2 de dezembro de 2009 14:31
    quarta-feira, 2 de dezembro de 2009 14:31