none
Aplicação em Rede RRS feed

  • Pergunta

  • Olá Galera, dado umas pesquisadas aqui nos forúm sobre como colocar minha aplicação para rodar na rede, vejo que tem explicando em outros contexto mais sem respostas. mas vamos lá!

    Fiz uma aplicação no Visual Studio, utilizando BD SQL, até então na máquina local roda de boa, assim já estou precisando em rodar essa mesma aplicação em rede. o que fiz... compartilhei a pasta da aplicação no Servidor  ( Windows Form), mapeei no terminal e tento rodar o *.exe que fica dentro da pasta ..Pasta_do_Sistema/Bin/Debug e execultando o .exe

    Me apresenta um erro ""Ocorreu uma exceção sem tratamento no seu aplicativo. Se você clicar em continuar, o aplicativo irá ignorar esse erro e tentará continuar. Se você clicar em Encerrar, o aplicativo será desligado imediatamente."

    , que depois abre o formulário todo em branco, sem nenhuma informação do banco de dados que está no servidor ( no qual rodo normal o .EXE) ...  Será que estou fazendo o procedimento normal.. em termos alguém pode me ajudar?

    quarta-feira, 28 de março de 2018 03:18

Respostas

  • Algumas hipóteses:

    • A máquina em que está rodando a aplicação não possui a versão do .Net necessária ou algum outro pré-requisito (o fato de estar em um compartilhamento de rede não quer dizer que está executando num computador remoto);
    • Você faz referência a algum arquivo utilizando caminho físico que não está disponível quando acessado via compartilhamento de rede;
    • Sua aplicação pode estar tentando criar um arquivo temporário no diretório do compartilhamento de rede mas não possui permissão de escrita.

    Como pode ver as hipóteses são várias, até porque não deu detalhes sobre a aplicação e o código.

    Se estiver desenvolvendo em C#, veja no arquivo Program.cs se há algo que pode gerar a exceção, ou nos eventos de entrada do seu Form principal. E coloque um tratamento de exceção, gravando o log em arquivo ou exibindo a mensagem na tela.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 28 de março de 2018 10:57
  • Bom dia, tudo bem?

    Vou lhe passar algumas dicas que podem ajudar.

    A string de conexão com o banco de dados, esta no "app.config" ou esta em código?

    Outro ponto, seria importante, vc gerar uma compilação do seu sistema, coloque o projeto em modo "Release", faça uma recompilação, ele vai gerar uma pasta ..\bin\Release   dentro dela o VS vai copiar todos os arquivos e dll que sua aplicação precisa para executar. É uma boa pratica, vc criar uma pasta fora do seu projeto, no seu servidor, compartilhar esta pasta. Dentro dela vc copia tudo que esta \bin\Release. Assim não corre o risco de alguma atualização indesejada afetar o código que esta em produção.

    Depois de feito isso, vc pode puxar um atalho do exe da sua aplicação para as estações.

    Quando a aplicação é executada na estação, ela vai procurar o arquivo de configuração na pasta de origem. Este arquivo foi gerado pelo compilador com o nome do seu exe  e com a extensão .config.

    Nele haverá provavelmente a string de conexão, caso vc esteja usando ela neste arquivo, precisa alterar o localhost para o endereço ip do servidor, também é importante conferir se nas configurações de acesso do SQL estão habilitadas as opções de conexão de rede.

    Abraços.


    Ricardo S. Pulini

    quarta-feira, 28 de março de 2018 11:05

Todas as Respostas

  • Algumas hipóteses:

    • A máquina em que está rodando a aplicação não possui a versão do .Net necessária ou algum outro pré-requisito (o fato de estar em um compartilhamento de rede não quer dizer que está executando num computador remoto);
    • Você faz referência a algum arquivo utilizando caminho físico que não está disponível quando acessado via compartilhamento de rede;
    • Sua aplicação pode estar tentando criar um arquivo temporário no diretório do compartilhamento de rede mas não possui permissão de escrita.

    Como pode ver as hipóteses são várias, até porque não deu detalhes sobre a aplicação e o código.

    Se estiver desenvolvendo em C#, veja no arquivo Program.cs se há algo que pode gerar a exceção, ou nos eventos de entrada do seu Form principal. E coloque um tratamento de exceção, gravando o log em arquivo ou exibindo a mensagem na tela.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 28 de março de 2018 10:57
  • Bom dia, tudo bem?

    Vou lhe passar algumas dicas que podem ajudar.

    A string de conexão com o banco de dados, esta no "app.config" ou esta em código?

    Outro ponto, seria importante, vc gerar uma compilação do seu sistema, coloque o projeto em modo "Release", faça uma recompilação, ele vai gerar uma pasta ..\bin\Release   dentro dela o VS vai copiar todos os arquivos e dll que sua aplicação precisa para executar. É uma boa pratica, vc criar uma pasta fora do seu projeto, no seu servidor, compartilhar esta pasta. Dentro dela vc copia tudo que esta \bin\Release. Assim não corre o risco de alguma atualização indesejada afetar o código que esta em produção.

    Depois de feito isso, vc pode puxar um atalho do exe da sua aplicação para as estações.

    Quando a aplicação é executada na estação, ela vai procurar o arquivo de configuração na pasta de origem. Este arquivo foi gerado pelo compilador com o nome do seu exe  e com a extensão .config.

    Nele haverá provavelmente a string de conexão, caso vc esteja usando ela neste arquivo, precisa alterar o localhost para o endereço ip do servidor, também é importante conferir se nas configurações de acesso do SQL estão habilitadas as opções de conexão de rede.

    Abraços.


    Ricardo S. Pulini

    quarta-feira, 28 de março de 2018 11:05
  • Olá Boa noite, tudo bom

        vamos lá,

    • A máquina ( terminal) possui a mesma versão atual da máquina (servidor), pensava que o fato de compartilhar a pasta e execultar o *.EXE a aplicação rodava.
    • No segundo ponto não entendi claramente. ( como falei, quando aprendi um pouco de desenvolvimento, não tinha focado em rodar ela em rede).
    • Todas as permissões de leitura e alteração para todos os usuários estão liberadas
    quinta-feira, 29 de março de 2018 01:35
  • Olá, tudo bem.. criei a aplicação em 03 Camadas ( Apresentação, Negocio e Dados).

    no meu app.config está dessa forma  "<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
    </configuration>"

    já na minha classe conexão com o banco de dados está assim:

    namespace CamadaDados
    {
        class Conexao
        {
                   public static string cn = "Data Source = SERVIDOR\\SQLEXPRESS; Initial Catalog = dbcomercio; Integrated Security = true"; 
        }
    }

    Nem sei mais o que tentar, resta pesquisar aqui nos fórum com a ajuda de vocês..

    quinta-feira, 29 de março de 2018 01:42
  • Filipe, boa tarde

    veja se seu SQL está configurado para permitir acesso em rede.



    Ricardo S. Pulini

    quinta-feira, 29 de março de 2018 17:45