Problema al usar el patrón MVC en Visual Studio con IIS

Iniciado por KaneOneR, 1 Febrero 2017, 17:42 PM

0 Miembros y 2 Visitantes están viendo este tema.

KaneOneR

Buenas tardes a todos. Lo primero de todo es que soy nuevo por aquí. He frecuentado otros foros en los que es habitual presentarse pero no sé si aquí es necesario (he buscado algún hilo o subforo para ello pero no lo he encontrado). Soy un proyecto de ingeniero interesado mucho en temas de seguridad y programación en general, estando ahora mismo con el proyecto de fin de grado en el que combino C#, Android, WPF y parte de bases de datos.

Espero ser un miembro activo de este foro y continuar aprendiendo y, si es posible, aportar.

Y ahora tras la presentación la duda.

Estoy intentando hacer una pequeña aplicación de prueba en VS usando el patrón MVC. La creación y conceptos sobre ello no son complicados pero el problema viene a la hora de intentar configurar en VS la IP y el puerto para poder acceder desde otros dispositivos dentro de la red local (por defecto están desactivados estos accesos por cuestiones de seguridad).

He realizado el binding correspondiente dentro del fichero de configuración de IIS y aplicando el netsh como admin desde la consola de comandos para aceptar peticiones HTTP desde otros dispositivos.

He mirado documentación de Microsoft, consultado Stack Overflow y otros sitios habituales a la hora de programar pero por el momento no he encontrado ninguna solución (o almenos alguna que me sirva para solucionar el problema). ¿Alguien ha tenido este problema alguna vez o puede decirme cómo hacerlo de forma correcta? ¿Estoy pasando por alto alguna configuración adicional usando la consola de administración de IIS?

Gracias de antemano y un saludo.

EDIT: He situado el hilo en este subforo puesto que era el indicado para .NET. Espero haberlo situado bien y sino mis disculpas. Poco a poco iré haciéndome ello.

Novlucker

#1
¿Seguro que no ha faltado alguno de estos pasos?
:http://www.codewithasp.net/2015/12/setup-remote-access-iisexpress-lan.html

En los comentarios de ese artículo se menciona además una extensión para VS, pero si bien alguna vez seguí pasos similares a estos, nunca probé esa extensión :P

Por cierto, entiendo que el problema es con IIS Express, la alternativa es configurar un IIS Completo.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

dato000

Cita de: KaneOneR en  1 Febrero 2017, 17:42 PM
Buenas tardes a todos. Lo primero de todo es que soy nuevo por aquí. He frecuentado otros foros en los que es habitual presentarse pero no sé si aquí es necesario (he buscado algún hilo o subforo para ello pero no lo he encontrado). Soy un proyecto de ingeniero interesado mucho en temas de seguridad y programación en general, estando ahora mismo con el proyecto de fin de grado en el que combino C#, Android, WPF y parte de bases de datos.

Espero ser un miembro activo de este foro y continuar aprendiendo y, si es posible, aportar.

Y ahora tras la presentación la duda.

Estoy intentando hacer una pequeña aplicación de prueba en VS usando el patrón MVC. La creación y conceptos sobre ello no son complicados pero el problema viene a la hora de intentar configurar en VS la IP y el puerto para poder acceder desde otros dispositivos dentro de la red local (por defecto están desactivados estos accesos por cuestiones de seguridad).

He realizado el binding correspondiente dentro del fichero de configuración de IIS y aplicando el netsh como admin desde la consola de comandos para aceptar peticiones HTTP desde otros dispositivos.

He mirado documentación de Microsoft, consultado Stack Overflow y otros sitios habituales a la hora de programar pero por el momento no he encontrado ninguna solución (o almenos alguna que me sirva para solucionar el problema). ¿Alguien ha tenido este problema alguna vez o puede decirme cómo hacerlo de forma correcta? ¿Estoy pasando por alto alguna configuración adicional usando la consola de administración de IIS?

Gracias de antemano y un saludo.

EDIT: He situado el hilo en este subforo puesto que era el indicado para .NET. Espero haberlo situado bien y sino mis disculpas. Poco a poco iré haciéndome ello.

Y cual es el problema, si lo haces desde IIS Express, simplemente necesitas habilitar el puerto en la dirección en la que se lanza la aplicación, eso depende más del firewall de windows y la seguridad de la red para permitir el acceso a otros dispositivos.

Si estas usando peticiones HTTP en los dispositivos, como un GET o un POST, tendras que configurar apropiadamente tu proyecto para que pueda recibir ese tipo de peticiones y lanzar unas respuestas apropiadas con el objeto que estes necesitando, a lo mejor necesitas repositorios o un WebAPI para eso, pero siendo algo básico, solo necesitas es una dirección del servidor (tu proyecto de Visual Studio) y un cliente (el navegador de tu cliente).

Si esta en red local pues debes configurar la red, no va tanto en visual studio, sino en la red, en tu dominio y tu grupo de trabajo en la que agregues o establezcas una politica donde permitas el acceso a diferentes clientes en tu servidor.

Si lo haces con IIS de tu sistema operativo, es incluso más facil y al mismo tiempo más dificil, pues es un conjunto de servicios que pues necesitas configurarse apropiadamente para que tu dominio y tu grupo de acceso pueda acceder a esa aplicación. Por otro lado, tendras tu aplicación o web site siempre a la orden en la medida de la configuración que establezcas.

Se que esto suena difuso, pero tu duda, también es difusa, tu titulo, no tiene absolutamente nada que ver con el problema, si es que el problema va por ese lado. Creeria que necesitas proveer un poco más de información para aclarar el problema.



KaneOneR

Cita de: Novlucker en  2 Febrero 2017, 07:26 AM
¿Seguro que no ha faltado alguno de estos pasos?
:http://www.codewithasp.net/2015/12/setup-remote-access-iisexpress-lan.html

En los comentarios de ese artículo se menciona además una extensión para VS, pero si bien alguna vez seguí pasos similares a estos, nunca probé esa extensión :P

Por cierto, entiendo que el problema es con IIS Express, la alternativa es configurar un IIS Completo.

Saludos

Buenas tardes y gracias por tu respuesta. Por lo que veo en el enlace he hecho todos los pasos...no obstante no me había fijado en lo del complemento para VS.

Sí, el problema es con IIS Express. Teóricamente tras realizar el binding, netsh para la acl, etc. se debería mostrar la aplicación web creada en MVC pero salta una notificación de que varias cosas fueron mal y al hacer click para más info dice que IIS necesita permisos de administrador  :huh:

KaneOneR

Cita de: dato000 en  6 Febrero 2017, 21:29 PM
Y cual es el problema, si lo haces desde IIS Express, simplemente necesitas habilitar el puerto en la dirección en la que se lanza la aplicación, eso depende más del firewall de windows y la seguridad de la red para permitir el acceso a otros dispositivos.

Si estas usando peticiones HTTP en los dispositivos, como un GET o un POST, tendras que configurar apropiadamente tu proyecto para que pueda recibir ese tipo de peticiones y lanzar unas respuestas apropiadas con el objeto que estes necesitando, a lo mejor necesitas repositorios o un WebAPI para eso, pero siendo algo básico, solo necesitas es una dirección del servidor (tu proyecto de Visual Studio) y un cliente (el navegador de tu cliente).

Si esta en red local pues debes configurar la red, no va tanto en visual studio, sino en la red, en tu dominio y tu grupo de trabajo en la que agregues o establezcas una politica donde permitas el acceso a diferentes clientes en tu servidor.

Si lo haces con IIS de tu sistema operativo, es incluso más facil y al mismo tiempo más dificil, pues es un conjunto de servicios que pues necesitas configurarse apropiadamente para que tu dominio y tu grupo de acceso pueda acceder a esa aplicación. Por otro lado, tendras tu aplicación o web site siempre a la orden en la medida de la configuración que establezcas.

Se que esto suena difuso, pero tu duda, también es difusa, tu titulo, no tiene absolutamente nada que ver con el problema, si es que el problema va por ese lado. Creeria que necesitas proveer un poco más de información para aclarar el problema.

El problema es que tras hacer el binding, configurar la acl, etc. para poder acceder a dicha app web desde otros dispositivos de la red salta una excepción que no debería saltar teóricamente...

La idea es que una app Android se conecte a esa página para obtener info en JSON, parsearla y usarla en varias funcionalidades de la app. Por tanto, en este caso, el cliente es un terminal Android.

Lo hago en el IIS de mi SO.

dato000

Cita de: KaneOneR en  7 Febrero 2017, 19:52 PM
El problema es que tras hacer el binding, configurar la acl, etc. para poder acceder a dicha app web desde otros dispositivos de la red salta una excepción que no debería saltar teóricamente...

La idea es que una app Android se conecte a esa página para obtener info en JSON, parsearla y usarla en varias funcionalidades de la app. Por tanto, en este caso, el cliente es un terminal Android.

Lo hago en el IIS de mi SO.

Pues deberias consultar esa excepción en especifico y configurar el bind que dices para que regrese un JSON, ahora, puede que la solicitud que dices no la tienes configurarada apropiadamente para la petición http que retorna los valores y las llaves que se necesitan.

Busca sobre peticiones GET / POST.

Si quieres hacer pruebas sobre ese tipo de peticiones, usa POSTMAN, para verificar el funcionamiento de esa función.



Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein