https - development - Problemas para usar IIS Express SSL con VS2012 y un equipo
iis express development certificate (9)
El problema:
ADFS2 requiere que un RP Trust use https. La confianza de RP es https://localhost:44310/PAWS/
. Dicho esto, necesito que IIS Express use SSL localmente. Entonces, cuando configuro mi proyecto ASP.NET MVC4 para usar IIS Express.
Cuando compruebo esto en TFS (control de fuente) y otro desarrollador en el equipo obtiene lo último. El proyecto no se cargará para ellos.
Visual Studio 2012 mostrará los siguientes mensajes de error al abrir la solución:
Esto se debe a que IIS Express no leerá automáticamente el archivo de proyecto y agregará el enlace HTTPS a la configuración del sitio. Esta es la configuración que VS agrega al archivo IIS Express ''applicationhost.config
<site name="PAWS.Web-Site" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:/Users/larsene/Documents/My Web Sites/PAWS.Web-Site14" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:44310:localhost" />
</bindings>
</site>
Pero necesito que el protocolo de enlace se establezca en HTTPS así:
<binding protocol="https" bindingInformation="*:44310:localhost" />
Puedo ingresarlo manualmente en el applicationhost.config. O puedo ejecutar el appcmd.exe como para configurarlo.
"%ProgramFiles(x86)%/IIS Express/appcmd.exe" set site /site.name:PAWS.Web-Site /bindings:https/*:44310:localhost
Pero cualquiera de estos 2 métodos no es lo que quiero. No quiero tener que explicarle a todos los desarrolladores que trabajan en este proyecto que tengan que editar manualmente sus configuraciones de IIS Express antes de que puedan cargar el proyecto.
Cómo recrear el problema:
Esto se puede volver a crear fácilmente al cerrar VS2012 por primera vez. A continuación, eliminando la carpeta de configuración para IIS Express ubicada en
%USERPROFILE%/Documents/IISExpress
y luego abra VS2012 y también abra la solución al proyecto MVC4 que está configurado para usar IIS Express con https. Ahora, VS2012 no podrá cargar el proyecto y se quejará de que no hay enlaces seguros.
¿Qué estoy haciendo mal o cómo puedo solucionarlo para que las personas que tengan la última versión de mi proyecto simplemente puedan ejecutarlo?
Necesita configurar SSL Enabled en True en la lista de propiedades del proyecto para que ese enlace aparezca automáticamente. (por Scott Hanselman)
¿Has intentado abrir el proyecto como administrador (ejecuta VS2012 como administrador)?
Por lo general, cuando obtiene los errores anteriores (la configuración de xxx web para ASP.NET 4.5 falló ...) y (la creación del directorio virtual xxx falló) es porque Visual Studio no tiene suficientes privilegios.
Puede que no sea tu problema, pero no está de más intentarlo.
¿Has intentado configurar manualmente el puerto en el archivo .csproj? Una vez que lo haya configurado allí, debería transferirse a otras estaciones de trabajo:
<IISExpressSSLPort>44310</IISExpressSSLPort>
Además, el archivo de usuario del proyecto aún puede causar problemas incluso con la opción "Aplicar configuración de servidor a todos los usuarios" marcada. Normalmente elimino el archivo de usuario cuando soluciono problemas de SSL con IIS Express, porque es mucho más fácil simplemente reconfigurar la configuración de usuario después de haber solucionado el problema.
Recientemente me he encontrado con este mismo problema y he podido determinar por qué está sucediendo.
Visual Studio está utilizando la configuración de Url del proyecto para establecer el enlace HTTP de IIS Express, y luego mira la configuración IISExpressSSLPort para establecer el enlace https.
Sin embargo, si ha cambiado la URL del proyecto a una dirección https, es cuando Visual Studio se confunde. A los efectos de la actualización obligatoria de IIS Express, se supone que ha ingresado una dirección http para la Url del proyecto y no parece poder manejar una dirección https allí.
Esto complica las cosas ya que cambiar la URL del proyecto a una dirección https es la única forma que he encontrado para que Visual Studio comience a depurar la URL https de forma predeterminada.
Por lo tanto, esto parece ser un problema en la forma en que Visual Studio maneja las actualizaciones de enlace de IIS Express. No conozco una buena solución que permita tanto las actualizaciones de enlace automáticas como la depuración con la dirección https cargada.
Parece que podría ser un error en VS2012 ... La única forma en que he podido manejar esto es editando manualmente el archivo de configuración IISExpress: applicationhost.config, ubicado en C: / Users / YOUR_USER_NAME / Documents / IISExpress / config. Luego, en ''sitios'' modifiqué el bloque para el sitio web de la aplicación específica:
<site name="YourSite" id="1">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/..." />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:YOUR_PORT_#:localhost" />
</bindings>
</site>
Cambie el ''protocolo de enlace'' a ''https'' y asegúrese de iniciar Visual Studio 2012 con privilegios de administrador, al menos hasta que el sitio se cree / modifique en IIS Express.
Espero que esto ayude...
Recientemente tuve un problema muy similar y me encontré con esta publicación cuando traté de resolverla. Una cosa que he notado es que IIS Express parece muy angustiado si más de un sitio está configurado con un enlace HTTPS en el archivo applicationhost.config.
En mi caso, tuve 2 sitios configurados para usar el mismo enlace SSL al puerto 44300, cambiando el número de puerto en uno de los enlaces SSL en uno de los sitios causó errores similares a los del OP. Terminé teniendo que eliminar uno de los sitios, lo cual no es ideal.
Después de investigar un poco más, intenté cambiar la propiedad ''Requerir SSL'' de true
a false
, y de nuevo a true
. Esto desencadenó una actualización del applicationhost.config que creó un nuevo enlace SSL con un nuevo número de puerto.
Me metí en este lío porque había copiado un proyecto existente y mi configuración intentaba compartir puertos entre 2 sitios.
En primer lugar, gracias por proporcionar los pasos para reproducir esto en su máquina local. Otros miembros del equipo tenían este problema, pero desde que creé el proyecto, no lo experimenté. Esto me permitió la oportunidad de experimentar con algunas soluciones diferentes.
Lo que he encontrado funciona mejor en el entorno actual (sin solución de MS) es dejar la URL del proyecto como el valor http, pero cambie la URL de inicio al valor https. La mayoría de los desarrolladores deberían sentirse cómodos al cambiar eso en VS.
Esto funciona en máquinas nuevas sin requerir que alguien ejecute un archivo bat para configurar el sitio https. Tienes dos enlaces en IIS Express (http y https), pero aparte de eso, parece funcionar bastante bien.
Puedo confirmar que Visual Studio 2013 está libre de este problema.
La actualización de VS2012 a 2013 resolvió el problema para mí.
Veo dos opciones:
Habilite la opción Aplicar servidor a todos los usuarios (almacenar en el archivo de proyecto) en la pestaña Web para mover la configuración de enlace a su archivo de proyecto.
o
Agregue el archivo de usuario de su proyecto al control de fuente.
Cualquiera de los enfoques permitirá a los usuarios obtener lo último y funcionar sin problemas.