2008-10-20 13 views
41

Recuerdo cuando MS estaba desarrollando Cassini. Creo que lo incluyeron en VS 05/08, así que creo que esta es una pregunta del servidor web de Cassini.Las máquinas remotas no se pueden conectar al servidor web de Visual Studio

Estoy usando Windows XP con Visual Studio 2008, y me resulta bastante inconveniente cuando quiero probar una página web/estilo con múltiples navegadores y múltiples sistemas operativos. Ahora mismo tengo que implementar el código en nuestro servidor, y si hay alguna actualización que deba suceder, el proceso se convierte en una pérdida de tiempo. Como utilizo XP/IIS 5, la opción de usar IIS no es una opción. El uso de IIS en XP requiere un prefijo adicional para un proyecto, lo que rompe todos los enlaces, css, etc. Este también fue un proyecto de desarrollo muy rápido, por lo que cosas como el directorio raíz que debería extraerse para configurar no, estoy bastante bordo con este tipo de solución, pero no se implementó en este proyecto. También parece realmente incompleto que MS no permita una simple bandera en algún lugar para permitir conexiones remotas, es bastante simple (http://www.devx.com/dotnet/Article/11711) pero no quiero recompilar Cassini.

¿Alguien sabe cómo permitir que otras computadoras vean el servidor web de desarrollo integrado en Visual Studio 2008? Esto ahorraría mucho tiempo.

Respuesta

39

solo encontrado una buena solución: 1) Establecer violinista en la máquina de desarrollo 2) Puesta en funcionamiento de la máquina remota para utilizar el violinista como apoderado 3) vaya a http://localhost.:[insert your dev port # here]/en la máquina remota

+4

¿Puedes elaborar? – erikkallen

+7

http://www.fiddler2.com/fiddler/help/reverseproxy.asp Se confirma que el paso 2 funciona con VSDS. Un ejemplo de mi regla es: if (oSession.host.toLowerCase() == "192.168.1.138:8888") oSession.host = "localhost: 35810"; –

+3

La URL cambió a http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy –

2

Microsoft no permite esto a propósito; no quieren que implemente su aplicación con Cassini. It's compiled right into its code.

Habiendo dicho eso, a menudo me he preguntado si solo verifican la url de "localhost". Tal vez la edición del archivo HOSTS de la máquina remota y la redirección de "localhost" a la máquina Cassini podría engañarlo. Digno de un tiro ... En las ventanas se pueden encontrar ordenadores aquí:

C:\Windows\system32\drivers\etc 

Usted puede entrar en la configuración del proyecto Web y lo utilice el IIS local como un lugar de acogida, y entonces todo funcionará bien.

+0

Oye Jedi: olvidé mencionar que no puedo usar IIS desde que estoy en 5 y que causa que el directorio raíz sea diferente, rompiendo todos los enlaces y el estilo – Mario

+0

No tenía conocimiento de ningún problema de compatibilidad IIS 5.1 con VS ¿Estás seguro de que no puedes solucionarlo? – TheSoftwareJedi

+0

Cambio de un archivo de host no parece funcionar – Eric

0

Para resolver su problema de enlaces rotos, rutas a archivos, etc. Utilice enlaces relativos.

Además, el token "~ /" (sin comillas) dentro de las URL/propiedades/valores de ruta en los Controles de servidor de ASP.NET se reemplazará automágicamente con la ruta real a la subcarpeta de IIS donde reside su aplicación. Para que esta solución funcione, la raíz de la aplicación web que está desarrollando debe ser una aplicación IIS (consulte las páginas de propiedades de su proyecto web en la sección Web donde puede encontrar un enlace o botón para crear la aplicación IIS).

Google para raíz de aplicación web de IIS.

0

Pruebo frente a varios navegadores en mi cuadro local. Al servidor web local no le importa si usa Opera/Safari/Firefox/IE para conectarse. Normalmente, inicio el proyecto en el depurador, que también inicia IE, y luego corté/pegué la URL de IE en el navegador con el que estoy probando. Normalmente, el puerto que Cassini elige no cambia a menudo, por lo que muchas veces la URL ya está allí en el historial de mi navegador. Una vez que el servidor web se está ejecutando, incluso puede detener el depurador y continuar con la prueba en el navegador alternativo.

Para otras MacOS, normalmente publico en un servidor de QA con IIS6. He encontrado muy pocos casos donde después de probar con IE/Firefox/etc. en WinXP, hubo problemas en la Mac. No pruebo específicamente variantes de Linux.

+1

Él está hablando acerca de la carga de IE en una máquina virtual como Virtual PC dentro de una caja de desarrollo, y luego se conecta a la máquina local en el cuadro de host (el ordenador real) desde el navegador dentro de la máquina virtual. Mucho más conveniente cuando se depura porque permaneces dentro de tu IDE para la depuración y no tienes que implementar una y otra vez. –

+0

@ Chris - Mi solución es tratar de prueba con múltiples navegadores en mi caja dev para probar varios motores. He tenido éxito con esto sin tener que recurrir a máquinas virtuales. Una vez configurado, básicamente, despliego de control de calidad (lo hago de todos modos) y dejar que otras personas con diferentes combinaciones de navegador/OS martillo lejos en ella. Probablemente estoy arruinado en que no hacer a menudo tiene que preocuparse de los navegadores más antiguos, ya que mis aplicaciones son generalmente interna y vamos a hacer un buen trabajo de actualización de los navegadores.Tener que probar varias versiones del navegador puede ser complicado y pude ver dónde podría ser útil tener VMs configuradas con diferentes versiones. – tvanfosson

+1

Sí, esta publicación no es para ti. No se pueden probar legítimamente múltiples versiones de IE localmente sin máquinas virtuales, por lo que la clave es hacer que las conexiones de VM sean convenientes. Existen formas de instalar clones uno al lado del otro, pero los motores no son lo mismo, ocultando los errores que verán los usuarios. –

-2

Usando violinista como proxy inverso, el servidor web de desarrollo podría obtener la solicitud, pero se convierte en solicitud interna (127.0.0.1), lo cual es inútil en mi caso.

Estoy intentando coger solicitud remota para depurarlo de allí.

+0

¿Por qué esos detalles importan? Eso suena como algo que podrías manejar por ambiente en lugar de mirar a IP. –

-1

Intenta vincular .Net a 127.0.0.1 en lugar de localhost, realmente hace la diferencia con la resolución en algunos casos que he encontrado. me gustaría haber sabido que todo el tiempo, me habría ahorrado un número de horas.

También he visto utilizar Privoxy, que puede ser más rápido, pero Fiddler es mucho más fácil y no requiere configurar un bucle invertido.

De todas formas, tengo VS configuración en localhost: 15709 y esto a su violinista: si (oSession.host.toLowerCase() == "servidor web: 15709") oSession.host = "localhost: 15709";

Así que simplemente escribo webserver: 15709 en mi VM y funciona muy bien.

+0

-1: Eso no resuelve el problema. ¿Lo has probado? –

15

este momento para responder a una vieja pregunta, pero ocupa en Google así que decidió añadir mis 2 centavos:

En VS 2010 no es una opción para utilizar "IIS Express" en lugar de VS Desarrollo Server, que permite a distancia conexiones por defecto.

ACTUALIZACIÓN: la versión actual de IIS Express no permite conexiones externas de manera predeterminada, consulte HERE para saber cómo puede habilitar las conexiones remotas.

+0

¿dónde está la opción? – moonlightcheese

+0

En la configuración del proyecto – Alex

+4

Acaba de instalar IIS 7.5, pero no acepta conexiones externas como predeterminadas. Entonces, al menos para mí, esto no funciona. – Akku

-2

WebMatrix es otra alternativa.

Cuestiones relacionadas