none
Ayuda urgente, instalar una aplicacion en dos equipos

    Question

  • Hola, resulta que he desarrollado una aplicacion de gestion de ventas  que en un principio se instalaba en una sola maquina, pero ahora quieren que este disponible para  para las dos maquinas conectadas en red.
    La aplicacion esta desarrollada en vb 2008 y la base de datos con sql 2005 expres, todo se innstala mediante clickonce
    en el "primer equipo" hasta aqui todo funciona bien. En el "segundo equipo" pense en ejecutar la aplicacion mediante "archivos compartidos" pero al ejecutar la aplicacion, arranca, carga la bd, introduces un registro (factura, cliente, articulo, etc...) lo graba pero no actualiza, es decir si es una factura, la creo, guardo, imprimo, etc... pero en el otro equipo no aparece en la bd por ningun lado, (de hecho puedo generar una fra. en cada equipo con el mismo numero).
    Si alguien me puede hechar una mano por favor, no se como compartir la aplicacion entre las dos maquinas sin tener que desarrollarla otra vez desde cero.
    Se me olvidaba, la implementacion la hago con clickonce por que con windows installer me genera un error con la base de datos, pero acepto sugerencias. :-)
    Gracias por la ayuda.
    Wednesday, May 20, 2009 10:30 PM

Answers

  • Trabaja con un modelo cliente /servidor


    En la maquina que ya estaba implementado utilizala como servidor
    y la otra maquina, direccionala a la base de datos de la primer maquina

    Y asi mismo evitarias muchos problemas




    La verdadera sabiduría está en reconocer la propia ignorancia Visita: VicoNet
    Wednesday, May 20, 2009 11:09 PM
  • hola,

    Algunas aclaraciones, si instalas tu aplicacion desde el cd, me parece que no es clickonce lo que estas utililizando, sino un programa de instalacion comun.

    No esta del todo correcto que tu instalador, instale (valga la redundancia), tu base de datos, salvo que la aplicacion haya sido pensada originalmente para trabajar como standalone.

    Lo que deberias hacer en este caso es decidir que pc trabajara como servidor de base de datos, alli instalas todo completo aplicacion y base.

    Desde la segunda ya que no te queda otra tambien instalas todo, pero luego desinstalas manualmente la base de datos de esa pc local.

    Luego deberias buscar en la aplicacion donde es que configura el connection string, segurametne este usando algun archivo de extension .config, si lo localizas editalo con el notepad, y como bien comenta VicoNet, deberias ubicar algun string similar a :

    "Server=127.0.0.1;Database=Basededatos; Integrated Security=sspi";

    esta es la conexion a tu servidor, deberias saber cual es el ip de tu pc que determinaste como server, y reemplazarlo en dodne dice "server".

    veras que utilice a proposito el 127.0.0.1, esta es una ip reservada para determinar la pc local, o como se dice el localhost, seguramente si estuvo pensada la aplicacion para trabajar localmente este usando esta ip.


    bueno espero te sirva de guia.
    saludos
    Leandro Tuttini
    Thursday, May 21, 2009 4:39 PM

All replies

  • Trabaja con un modelo cliente /servidor


    En la maquina que ya estaba implementado utilizala como servidor
    y la otra maquina, direccionala a la base de datos de la primer maquina

    Y asi mismo evitarias muchos problemas




    La verdadera sabiduría está en reconocer la propia ignorancia Visita: VicoNet
    Wednesday, May 20, 2009 11:09 PM
  • hola,

    Si coincido con el consejo de VicoNet, si ya estas haciendo uso de clickone para distribuir tu aplicacion cual seria la causa que evita que instales otro cliente en la segunda o N pcs de usuario que necesiten usar el producto.
    Por como lo veo si sufre algun cambio el mismo click one se encargara de actualziar los clientes.

    O sea solo verifica que tu sql server puede ser accedido por medio de la red y eso es todo, cada cliente se conectara a tu db.

    Ejecutar por la red no se lleva muy bien con .net, preguntas similares se han realizado en el foro sobre esto y ninguna que haya visto puedo hacerlo correr desde una carpeta shared.


    saludos
    Leandro Tuttini
    Thursday, May 21, 2009 12:12 AM
  • ¿Pero como direcciono la maquina2 a la bd de la maquina1?. Estoy intentando ejecutar el programa desde mis sitios de red compartiendo el escritorio de la maquina1 pero no lo ejecuta me dice que faltan archivos necesarios para la aplicacion' pero si  la intalo instalo ejequta la bd ubicada en el equipo( la base de datos la instala el mismo programa).
    Thursday, May 21, 2009 7:39 AM
  • Hola Fernandez Andres


    Lo primero que necesitas hacer es saber si hay conectividad entre la que va ser el servidor y la otra pc

    lo puedes hacer con un ping la ip maquina

    ejemplo

    ping 192.168.10.23

    Ya que exista una conexion entre ellas,

    Necesitas definir permisos dentro de tu servidor de base de datos

    Si se van a conectar con Autenticacion de Windows o de SQL Server

    Autenticacion de Windows tu cadena seria la siguiente



    "Server=192.168.10.23;Database=Basededatos; Integrated Security=sspi";

    Autenticacion de  SQL Server tu cadena seria la siguiente

    "Server=192.168.10.23;Database=Basededatos; user id=usuarios; password=password";

     

    Cualquier cosa la comentas

     

    SUERTE!!


    La verdadera sabiduría está en reconocer la propia ignorancia Visita: VicoNet
    • Edited by El Vico Thursday, May 21, 2009 2:06 PM
    Thursday, May 21, 2009 2:05 PM
  • Hola he trasteado durante toda la mañana en los equipos y tengo algunos datos mas.
    Paso a paso.
    Los equipos estan conectados puesto que comparten carpetas, impresora, etc... sin problemas.
    ya estaban asi.

    1º En el primer equipo instalo la aplicacion (clickonce) desde cd, hasta aqui bien la app. funciona correctamente.
    Vamos al segundo, instalo los requisitos (sql server, framework, las .dll de crystal, ...)ya reunimos los requisitos para ejecutar la app, voy a mis sitios de red selecciono la carpeta donde tengo la carpeta de instalacion (compartida), ejecuto y entonces en vez de arrancar lo que pasa es que se instala el programa con la base de datos incluida por lo que al ejecutarlo va a leer la base e datos instalada en el equipo2 en vez la del equipo1 (teorico servidor), por lo tanto al crear un registro se en cualquiera de los equipos se guarda e sus respectivas bd en vez de en una sola bd compartida. Mal

    2º En el primer equipo instalo en red desde mi portatil, opcion al crear la implementacion de ejecutar desde otro equipo en vez de instalar desde cd, ejecuto el archivo htlm (creo) que genera se instalan los requisitos, todo bien.
    Vamos al segundo desde el accedo al escritorio del primero (compartido) ejecuto la app. me la vuelve a instalar y tenemos otra vez el lio.
    Es una pequeña app. para una compraventa de vehiculos con la base de datos creada desde el ide de vb. No se si estara aqui el fallo y la idea es compatirla como la impresora o una carpeta mas entre los dos equipos.
    Quizas tenga que configurar el sql server en uno u otro equipo, no se, la verdad es que estoy perdido.

    Si me puedes explicar donde/como configurar sql server, alguna pista, cambiar modo de implementacion (windows instaler por ejemplo) lo que sea.

    Gracias por el interes mostrado

    P.D ¿Puede dar problemas al instalar clickonce  en la cache del sistema?

    Thursday, May 21, 2009 3:45 PM
  • hola,

    Algunas aclaraciones, si instalas tu aplicacion desde el cd, me parece que no es clickonce lo que estas utililizando, sino un programa de instalacion comun.

    No esta del todo correcto que tu instalador, instale (valga la redundancia), tu base de datos, salvo que la aplicacion haya sido pensada originalmente para trabajar como standalone.

    Lo que deberias hacer en este caso es decidir que pc trabajara como servidor de base de datos, alli instalas todo completo aplicacion y base.

    Desde la segunda ya que no te queda otra tambien instalas todo, pero luego desinstalas manualmente la base de datos de esa pc local.

    Luego deberias buscar en la aplicacion donde es que configura el connection string, segurametne este usando algun archivo de extension .config, si lo localizas editalo con el notepad, y como bien comenta VicoNet, deberias ubicar algun string similar a :

    "Server=127.0.0.1;Database=Basededatos; Integrated Security=sspi";

    esta es la conexion a tu servidor, deberias saber cual es el ip de tu pc que determinaste como server, y reemplazarlo en dodne dice "server".

    veras que utilice a proposito el 127.0.0.1, esta es una ip reservada para determinar la pc local, o como se dice el localhost, seguramente si estuvo pensada la aplicacion para trabajar localmente este usando esta ip.


    bueno espero te sirva de guia.
    saludos
    Leandro Tuttini
    Thursday, May 21, 2009 4:39 PM
  • Hola

    Comentaste que usas Sql Server 2005 verdad.....

    No se si cuentes con la herramienta Sql Server Managament  para poderlo administrar mas facil

    si no cuentas con ella en el siguiente link te muestra donde descargarlo y como instalarlo

    Link


    Bueno despues que lo tengas aparecera tu servidor del lado derecho en el explorador de objetos
    abres la carpeta que dice Security ahi puedes crear un usuarios con el cual puedan entrar a tu servidor

    Ya que lo hallas creado en la cadena de conexion que te comente pones el usuario y la contraseña

    "Server=laipdelservidor;Database=Basededatos; user id=usuario; password=contraseña";

    Bueno checa eso de cualquier forma seguimos en contacto
    La verdadera sabiduría está en reconocer la propia ignorancia Visita: VicoNet
    Thursday, May 21, 2009 4:41 PM
  • Hola Leandro
    Estoy probandolo en casa con dos equipos vamos a ver que sale.
    En cuanto a la implenentacion utilizo clickonce con la opcion de instalar desde cd, tengo localizado el config en cuanto a desinstalar a mano ¿te refieres a borrar la carpeta donde instala la db?,  y ¿ la cadena a modififar es la que pongo en negrita?, ¿Tengo que modificar algo en el motorde la base?
    Perdona por coserte a preguntas, gracias
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="EasyCar.My.MySettings.CompraVentaConnectionString"
                connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CompraVenta.mdf;Integrated Security=True;User Instance=True"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
        <system.diagnostics>
            <sources>
                <!-- En esta sección se define la configuración del registro para My.Application.Log -->
                <source name="DefaultSource" switchName="DefaultSwitch">
                    <listeners>
                        <add name="FileLog"/>
                        <!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
                        <!--<add name="EventLog"/>-->
                    </listeners>
                </source>
            </sources>
            <switches>
                <add name="DefaultSwitch" value="Information" />
            </switches>
            <sharedListeners>
                <add name="FileLog"
                     type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
                     initializeData="FileLogWriter"/>
                <!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de sucesos de la aplicación -->
                <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
            </sharedListeners>
        </system.diagnostics>
    </configuration>
    Thursday, May 21, 2009 5:15 PM
  • hola,

    exacto al cadena de conexion es justo la que marcas.

    con respecto a desinstalar me refiero a ejecutar el uninstall del sql express, ve sino tienes algun acceso directo o sino busca la carpeta donde se instalo, y ejecuta su desinstalador, borrar la carpeta noc reo que se auna buena idea.

    saludos
    Leandro Tuttini
    Thursday, May 21, 2009 7:22 PM
  • Bueno, creo que lo tengo al alcance de los dedos.

    configuro sql como servidor, activo tcp/ip, explorador etc..
    Instalada la app. en el equipo "servidor" le indico la cadena de conexion en el config y la coge.
    connectionString="Data Source=(LOCAL)\SQLEXPRESS;Initial Catalog=COMPRAVENTA.MDF;Integrated Security=True"

    Ahora vamos al segundo equipo le indico la misma cadena y entonces me da un error que  supongo es por algo que configuro mal en la conexion porque no conecta el programa pero desde sql server tampoco conecta, dando el mismo error.
    connectionString="Data Source=CRISTINA\SQLEXPRESS;Initial Catalog=COMPRAVENTA.MDF;Integrated Security=True"

    Error de inicio de sesion del usuario 'CRISTINA\Invitado'.

    Utilizo autentificacion windows (por si aclara algo).
    Gracias.
    Friday, May 22, 2009 9:24 AM
  • hola,

    ese error se puede dever a que no tienes seguridad integrada, o por alguna razon el usuario de login de tu pc no tiene acceso a ese servidor, no me reifiero acceso a la pc, sino al sql server.

    Recuerda que estas utilizando seguridad integrada, o sea les pasara las credenciales del usuario con que te autenticaste en windows para autenticar.

    Puede probar de habilitar la segurida de sql server, o mejor la mixta asi puedes utilziar ambas.
    Todo esto lo ahces desde el "SQL SErver Management Studio"

    Prueba de crear una archivo de extension .udl, puedes create un archivo de texto y luego renombrarlo, si lo ejecutas tendras un asistente para probar la conexion.
    Si lo editas con el notepad luego que este todo bien, veras el string de conexion dentro del archivo.

    saludos
    Leandro Tuttini
    Friday, May 22, 2009 12:23 PM
  • Hola.
    Supongo que no conecta porque las credenciales del cliente que pasa al servidor no coinciden ( el nombre del inicio de windows). No conecta el programa, ni el sql y no consigo crear una nueva conexion con autentificacion sql, no sabreis de algun link donde lo explique, todo lo que encuentro es relativo a la configuracion tcp/ip, puertos,etc... y eso lo tengo claro
     

    Friday, May 22, 2009 4:26 PM
  • Espero te sirva este

    LINK

    De cualquier formadamos en contacto

    SUERTE!!


    La verdadera sabiduría está en reconocer la propia ignorancia Visita: VicoNet
    Friday, May 22, 2009 5:06 PM
  • hola,


    TechNet Webcast: Introduction to Security in SQL Server 2005

    fijate si este webcast te ayuda a con el tema de seguridad del sql server.

    puede que al final sea un poco avanzado ya que segun veo es level 300, pero por ahi al principio lo explica simple, como para ver como agregar un nuevo usuario a tu sql server.


    saludos
    Leandro Tuttini
    Friday, May 22, 2009 5:29 PM
  • Hola de nuevo.
    Parece que se soluciono el problema.
    Voy a explicar los pasos por si a alguien le puede ayudar.
    Instale sql2005 en las dos maquinas poniendo la autenticacion en permitir Windows y sql.
    Asegurarse que los puertos 1433 TCP y 1434 UDP estan abiertos y sqlbrowser y sqlserver activos (configuracion firewall), sobre esto hay mucha informacion en la red.
    En la maquina "servidor" instale la bd del programa en una carpeta (cortar/pegar) y la agrege al sevidor,cree un usuario nuevo con autenticacion sql y le di permiso sobre la bd.
    En la Maquina "cliente"  arranco el sql conf. manager y en el cuadro conectar busco servidores en red. Selecciono la maquina que estableci como servidor, selecciono autenticar sql server y introduzco en inicio de sesion el nombre que cree del nuevo usuario y la contraseña en el campo contraseña.
    Una vez comprovado que se conectan, instalo la aplicacion(modo clickonce) en las carpetas por defecto yBusco en archivo .config en la maquina "servidor".
    C:\Documents and Settings\"el nombre que sea"\Configuración local\Apps\2.0\VROMV5XL.8YL\MW1HND7A.Y96\easy..tion_ffb82b6846fb7346_0001.0000_3e08f404dfe7ba8c
    Una vez localizado el config le cambiamos la ruta por algo asi, connectionString="Data Source=Servidor\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI" para que no conecte con la base instalada por la aplicacion sino con la que nosotros hemos agregado al sql.
    Ahora vamos a la maquina "cliente", instalamos el programa y buscamos el config como hemos hecho en la maquina "servidor" y cambiamos la ruta por una especificando el servidor. Data Source=Servidor\SQLEXPRESS; Initial Catalog=Initial Catalog=BASEDATOS.MDF; User Id=nomdre de usuario; Password=Contraseña.
    Comprovamos que en la ruta C:\Documents and Settings\"el nombre que sea"\Configuración local\Apps\2.0\VROMV5XL.8YL\MW1HND7A.Y96\easy...exe_ffb82b6846fb7346_0001.0000_none_e8c83156c40e172c la ruta tambien se cambia (si no la cambiamos manualmente en los dos equipos)  y ya esta todo.
    Es una forma de conseguir que una aplicacion desarrollada para un solo equipo pueda ser utilizada por varios sin tener que modificarla, (aunque no creo que sea lo mas ortodoxo) sales del paso si no tienes tiempo.
    Por cierto para que aparezcan las carpetas hay que seleccionar mostrar carpetas ocultas.
    Muchas gracias a leandro y VicoNet por indicarme el camino, si pasais por Alicante teneis unas cervecitas.
    Cualquier cosa pepitogrillo_51@hotmail.com
    Wednesday, May 27, 2009 10:34 AM