Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo hacer que el servicio Web ASP.NET Web API esté disponible en la red local

Estoy a punto de escribir un JSON-web-service (VS Express 2012 – ASP.NET WEB API), y ahora quiero probarlo tratando de obtener los datos de mi aplicación para Android. Así que traté de hacer que mi servicio esté disponible para la red local haciendo esto:

-> cambiado de localhost a 192.168.1.52 en applicationhost.config

 <site name="MyFirstWebApi" id="5"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\projects\MyFirstWebApi" /> </application> <bindings> <binding protocol="http" bindingInformation="*:61802:192.168.1.52" /> </bindings> </site> 

-> y también cambió Propiedades del proyecto -> Web -> "Utilizar IIS-Webserver local" -> project-url to http://192.168.1.52:61802/

Pero cuando ahora estoy tratando de iniciar el servicio, me da un error-messagebox:

El IIS-Express-webserver no se pudo iniciar (Traducido del alemán)

Lamentablemente no puedo ver cuál es el error exacto, porque la salida VS está vacía

Alguien sabe cómo arreglar eso o cómo configurar esto correcto?

3 Solutions collect form web for “Cómo hacer que el servicio Web ASP.NET Web API esté disponible en la red local”

IIS Express de forma predeterminada no permite conexiones "remotas" … esta publicación le muestra qué hacer:

Solicitud externa de IIS Express

Una vez hecho esto, debería poder conectarse desde CUALQUIER otro equipo de su red.

Además, asegúrese de abrir el puerto en su Firewall.

Si eso no funciona, crearía un sitio usando su IIS local y probaría su servicio de esa manera.

Espero que ayude, Daniel.

Puede ejecutar los scripts para que IIS Express permita conexiones remotas, pero otra opción es usar un contenedor de auto-host para el código de api web cuando se prueban localmente. Tuvimos el mismo problema y empezamos con este método. Así es como lo haces:

Crear un nuevo proyecto de consola y agregar código como este:

 private static void Main() { var config = new HttpSelfHostConfiguration(new Uri("http://localhost:8086")); // remove all formatters and only provide json config.Formatters.Clear(); config.Formatters.Add(new JsonMediaTypeFormatter()); // if needed SetupLogging(); SetupDependencyInjection(config); // required for the new Attribute Routing (if you are using it) config.MapHttpAttributeRoutes(); using (var server = new HttpSelfHostServer(config)) { server.OpenAsync().Wait(); Console.WriteLine("Self Host Server listening on port 8086 ..."); Console.WriteLine("(You might need administrator privileges)"); Console.WriteLine("Press Enter to quit."); Console.ReadLine(); } } 

Como se indica, ejecute Visual Studio con derechos de administrador.

Estamos utilizando AutoFac para la inyección de dependencia que ata en esto bastante bien, vea la guía aquí .

Ahora ejecute el proyecto de consola (establezca como proyecto de inicio o haga clic con el botón secundario en> depurar> iniciar nueva instancia).

Hola amablemente quitar el nombre de IP de ApplicationHost.config.

Cree un directorio virtual y publique los archivos webservice.

Establecer la dirección IP: – Haga clic con el botón derecho del ratón en 'Sitio Web predeterminado' – Editar vinculación – Asignar dirección IP

Reinicie el IIS.

Browe 'Default Web Site' Se mostrará con su IPAddress.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.