none
No abre googlemaps cuando aplicacion esta publicada RRS feed

  • Pregunta

  • Hola, Buenas tardes Leandro

    Antes que nada agradezco el apoyo que siempre nos brindas.

    Mi problema es el siguiente. Tengo una pantalla con 4 cajas de texto (calle, colonia, municipio, ciudad) y 2 botones.

    Cada boton accesa al google maps, utilizando la url de google y concatenandole la información capturada.

    Ej. Ejemplo del Boton1: System.Diagnostics.Process.Start(miURL.ToString());

         donde miURL tiene: http://maps.google.com/maps?q=acapulco 604,+el coecillo,+leon, guanajuato,+MEXICO

        Ejemplo del Boton 2:

                    Process p = new Process();
                    p.StartInfo.WorkingDirectory = @"C:\segure\";
                    p.StartInfo.FileName = @"C:\segure\openurl.bat";
                    p.StartInfo.Arguments = string.Format("{0}", miURL.ToString()+"MEXICO");
                    p.StartInfo.CreateNoWindow = false;
                    p.StartInfo.UseShellExecute = false;
                    p.Start();
                    p.WaitForExit();

    Donde openurl.bat es un archivo batch que hace la llamada a la pagina de google maps.

    El problema está en que si lo ejecuto desde Visual Studio, funciona correctamente, pero al publicarlo no funciona.

    El codigo del primer boton no hace nada y el segundo se queda como ciclada. Podrías por favor ayudarme?

    Gracias!

    lunes, 1 de julio de 2019 19:45

Respuestas

  • El "Process.Start" se ejecuta en el servidor. Cuando estás con Visual Studio y usas el mismo ordenador como servidor y como cliente a la vez, todo aparenta funcionar bien. Pero cuando lo publicas y el servidor es una máquina remota y usas un navegador que está en otro sitio, lógicamente no ves nada en el navegador cuando ejecutas el Process.Start y se ejecuta en la otra máquina.

    Si necesitas navegar a una URL, mándala al navegador indicándole que la abra en una ventana separada. En otras palabras: en una aplicación MVC, devuelve un View que dentro tenga un <script> que haga window.open("aquí la url"). Eso abrirá otra ventana (u otra pestaña dependiendo de cómo haya configurado el usuario su navegador) y cargará dentro el mapa en cuestión.

    lunes, 1 de julio de 2019 21:04
    Moderador

Todas las respuestas

  • El "Process.Start" se ejecuta en el servidor. Cuando estás con Visual Studio y usas el mismo ordenador como servidor y como cliente a la vez, todo aparenta funcionar bien. Pero cuando lo publicas y el servidor es una máquina remota y usas un navegador que está en otro sitio, lógicamente no ves nada en el navegador cuando ejecutas el Process.Start y se ejecuta en la otra máquina.

    Si necesitas navegar a una URL, mándala al navegador indicándole que la abra en una ventana separada. En otras palabras: en una aplicación MVC, devuelve un View que dentro tenga un <script> que haga window.open("aquí la url"). Eso abrirá otra ventana (u otra pestaña dependiendo de cómo haya configurado el usuario su navegador) y cargará dentro el mapa en cuestión.

    lunes, 1 de julio de 2019 21:04
    Moderador
  • hola

    >>El problema está en que si lo ejecuto desde Visual Studio, funciona correctamente, pero al publicarlo no funciona.

    que implicaria el "publicarlo" ? porque no mencionas de que tipo de aplicacion se trata, si es web esta claro que no va funcionar el

    Process.Star()

    ejecuta del lado servidor no en el cliente

    deberias realizar esto usando javascript y html, no codigo c#

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Carlos_Ruiz_M martes, 2 de julio de 2019 15:12
    lunes, 1 de julio de 2019 21:22