Muchos compañeros me han preguntado varias veces esta cuestión aparentemente sencilla, pero que a mí en su momento también me entretuvo bastante y por si a alguna otra persona le puede ayudar, lo quería dejar definitivamente escrito.
La situación es la siguiente. Vamos a realizar una aplicación para nuestro dispositivo móvil, la cual va a consumir un servicio web que estará corriendo, en un principio durante el testeo, en nuestro ordenador de desarrollo y al cual está conectado nuestra PDA o Smartphone.
Cuando agregamos la referencia web en nuestro proyecto de Visual Studio de Smart Device, la cual apunta al otro proyecto de Web Service en la misma solución, tenemos una referencia local tal que:
http://localhost:49217/WebServiceName/Service.asmx
Al ejecutar esto en el dispositivo móvil, él entiende que localhost es él, y que ahí no está corriendo el servicio que le indicamos, por lo que se producirá un error. Por tanto, una vez que nos damos cuenta de ello, el siguiente paso que habitualmente se nos ocurre, y que es lo más natural, es cambiar en la ventana de propiedades que antes mostrábamos la Web Reference URL, e indicarle una IP de alguna interfaz de red de nuestro ordenador, por ejemplo:
No obstante, al hacerlo desde la ventana de propiedades lo más que obtenemos es lo siguiente:
¿Y ahora qué? Ahora viene una posible solución. En lugar de establecer esta última IP en la ventana de propieades de forma visual, nos iremos al fichero Reference.cs que se encuentra en el siguiente directorio:
…..NuestroSmartDeviceProjectWeb ReferencesWebServiceNameReference.cs
Y en el constructor de la clase contenida Service, veremos que se inicializar una propiedad llamada URL. Ésta asignación es la que debemos cambiar, y sustituir localhost por la IP deseada:
Esta tarea es la que se supone que tendría que hacer VS cuando modificamos la URL desde la ventana de propiedades.
Buen dia, perdona la molestia.
si en mi red mi ip es 10.13.12.34
es seria el ip que tendria que poner?
de antemano gracias.
Hola Mario, perdona que no te haya contestado antes, pero creía que tenía los avisos activados….
Podría ser esa IP por ejemplo u otra cualquiera de tus adaptadores de red activos.
Un saludo!
Hola Mario,
Utilicé tu solución pero cuando se trata de consumir el Web service me sale WebException, me puedes ayudar a saber que es??
Gracias por el articulo. Me ayudo mucho!