Estoy usando el nuevo Visual Studio 2013 con IISExpress por primera vez (utilizado anteriormente ASP.net servidor de Desarrollo en VS2010). Estoy corriendo en problemas tratando de depurar mi proyecto.

Esto es lo que yo veo en Chrome:

No puede establecer una conexión segura con el servidor. Esto puede ser un problema con el servidor, o puede ser que requiera un certificado de autenticación de cliente que usted no tiene.
Código de Error: ERR_SSL_PROTOCOL_ERROR

He actualizado mi Properies -> archivo web para que la Url del Proyecto utiliza una dirección URL https ahora. Sin embargo, después de hacer eso, me da un error al iniciar:

La conexión a localhost fue interrumpido.
Código de Error: ERR_CONNECTION_RESET

Gracias

InformationsquelleAutor Kevin | 2013-10-17

19 Comentarios

  1. 39

    Si usted está usando URLRewrite a la fuerza de las conexiones SSL en su web.config, es probablemente la reescritura de su localhost dirección de la fuerza de https. Si la depuración con SSL habilitado no es importante para usted y que usted está utilizando URLRewrite, considerar la adición de <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> en su web.archivo de configuración de la reescritura de la sección. Se detendrá la reescritura para cualquier localhost direcciones, sino que dejan en el lugar en un entorno de producción.
    Si no estás usando URLRewrite o la necesidad de depurar el uso de SSL, http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx podría ayudar. Es para VS2010, pero debería ser suficiente para VS2013 así.

    • Me hizo el trabajo mediante la adición de la línea URLrewrite Y cambiar el puerto en el rango «:44300-:44398» (véase la respuesta a continuación por uosef)
    • SÍ! Después de un par de horas de casi perder mi mente, esto es lo que me ayudó!
  2. 313

    Yo estaba ERR_CONNECTION_RESET porque mi Visual Studio 2013/IIS Express configurado la aplicación número de puerto NO estaba en el rango de :44300-:44398. (No recuerdo tener que despedir a cualquier advertencias para obtener a cabo de que el rango). Cambiar el número de puerto para algo en este rango es todo lo que tenía que hacer para que funcione.

    Me di cuenta de esto después de revisar la netsh http show sslcert > sslcert.txt de salida y algo que hacer clic con cosas que he leído recientemente sobre los números de puerto.

    • Sólo lamento no tener mas que una upvote a dar para este post. ¿Cómo puedo solucionar este tipo de tonterías antes de ESO?
    • También puede utilizar netsh http add sslcert ... para agregar el puerto está a querer usar. Útil en algunos casos.
    • Después de ver varios posts de aquí, diciendo «restablecer el número de puerto» el suyo es el único post que he visto que indica un rango y, por tanto, el que resolvió el problema. [Doffs hat]
    • Crikey este se comió un montón de horas que nunca volver… netsh para el rescate, esto es digno de un post en el blog…
    • He encontrado que este rango de números de puerto se documenta en el el Uso de una Costumbre de Puerto SSL sección de la Manipulación de URL Errores de Enlace en IIS Express documentación.
    • Todavía trabajado con Visual Studio 2017 / IIS Express 10
    • Holy Crap! Increíble! Uno de los mejores menos intuitiva Respuestas en TAN. Tengo que saber, ¿dónde/cómo fuiste capaz de entender esto @Jason Kleban ?
    • años de preparación, la dolorosa, la motivación, las horas de persistencia y un golpe de suerte!
    • 3 años después, sigue el mismo problema, que sigue siendo el mismo fix. Gracias!
    • Trabajó voor VS2017 como bien Gracias!

  3. 77

    Asegúrese de quitar cualquier anterior ‘localhost’ certificados como los que pudiera entrar en conflicto con la generada por el IIS Express. Yo tenía este mismo error (ERR_SSL_PROTOCOL_ERROR), y me llevó muchas horas para finalmente averiguar después de probar muchas, muchas «soluciones». Mi error fue que me había creado mi propio ‘localhost’ certificado y había dos de ellos. Tuve que borrar tanto y han IIS Express volver a crearla.

    Aquí es cómo usted puede buscar y eliminar los ‘localhost’ certificado:

    • En Inicio, escriba -> mmc.exe
    • Archivo -> Agregar o Quitar Complemento…
    • Seleccione Certificados -> Agregar> -> cuenta de Equipo -> equipo Local
    • De verificación en virtud de los Certificados > Personal > Certificados de
    • Asegúrese de que el localhost certificado que existe tiene un nombre descriptivo «de IIS Express Certificado de Desarrollo». Si no, eliminarlo. O, si múltiples, eliminar todo.

    De Visual Studio, seleccione el proyecto y bajo la pestaña de propiedades, habilitar SSL=true. Guardar, compilar y Ejecutar. IIS Express va a generar un nuevo ‘localhost’ certificado.

    Nota: Si no funciona, prueba con estos: asegúrese de desactivar IIS Express en VS del proyecto y detener todas ejecución de la aplicación en él antes de la eliminación de ‘localhost’ certificado. También, usted puede ir a ‘panel de control > programas y Reparación de IIS Express.

    • En mi caso, certificado de IIS valores se han perdido, sin embargo certificados estaba en el disco. La configuración de los certificados SSL y actualización de enlace HTTPS en la página web de ayuda. Es importante establecer enlace https otra vez, incluso si el certificado ssl ya está seleccionado en el combobox.
    • Es necesario para la reparación de IIS Express. Ahora funcionó a la perfección. Gracias
    • Gracias. En mi caso, que había eliminado el certificado accidentalmente de mi equipo. La encontró cuando traté de ejecutar este comando y se arrojó diciendo: «Certificado SSL agregar error, Error: 1312 Una sesión de inicio de sesión especificado no existe. Es posible que ya se hayan terminado.» netsh http delete sslcert ipport=0.0.0.0:443 netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
    • Eso fue todo! Duplicados de certificados y tenía que hacer la reparación de iis express parte también.
  4. 29

    Estoy resumiendo los pasos que me han ayudado en la resolución de este problema:

    1. Asegúrese de que el puerto SSL rango de(utilizados por IIS express) es entre
      44300-44398

    Durante la instalación, IIS Express utiliza Http.sys para reservar puertos 44300
    a través de 44399 para el uso de SSL. Esto permite a los usuarios estándar (sin
    la elevación de privilegios) de IISExpress de configurar y de usar SSL. Para
    más detalles sobre esta tarea, consulte aquí

    1. Ejecute el siguiente comando como administrador en el símbolo del sistema. Esta es la salida de los enlaces de Certificado SSL en el equipo. A partir de esta lista, busque el certificado utilizado por el IIS express para el puerto correspondiente :

    netsh http sslcert de presentación > sslcert.txt

    1. Busque los siguientes elementos en la sslcert.txt (en mi caso el IIS
      express se estaba ejecutando en el puerto 44300)

    IP:puerto : 0.0.0.0:44300

    Hash del certificado : eb380ba6bd10fb4f597cXXXXXXXXXX

    IDENTIFICADOR de la aplicación : {214124cd-d05b-4309-XXX-XXXXXXX}

    1. Busque también en la consola de administración de IIS express (EJECUTAR (Ctrl+R) -> inetmgr.exe)
      y si el certificado correspondiente existe en el Servidor de Certificados

    (Haga clic en el ServerRoot -> bajo la sección de IIS () -> Abrir el Server
    Certificados)

    1. Si tu localhost por defecto usa un certificado diferente distinta a la indicada en el Paso 3, continúe con los siguientes pasos

    netsh http eliminar sslcert ipport=0.0.0.0:44300

    netsh http agregar sslcert ipport=0.0.0.0:44300 certhash=New_Certificate_Hash_without_space appid={214124cd-d05b-4309-XXX-XXXXXXX}

    La New_Certificate_Hash será su defecto certificado de atado con tu localhost (Que hemos encontrado en el paso 4, o de la que desea agregar un nuevo certificado.

    P. S. Gracias por su respuesta uosɐſ (que me ayudó en la solución de este problema)

    • Ha, se cambia el puerto de 53xxx a 44300 hizo el truco para mí.
    • Tenía que hacer esto después de cambiar de IIS para IISExpress
    • Cambiar el puerto trabajó también para mí. ¿Alguien sabe por qué los puertos tienen que estar en este rango y donde se configura?
    • Puerto de cambio para ganar! Y lo mismo para la de Jim comentario de por qué los puertos deben estar en el 44300-44398 gama?
    • Durante la instalación de IIS Express utiliza Http.sys para reservar puertos 44300 a través de 44399 para el uso de SSL. Esto permite a los usuarios estándar (sin privilegios) de IISExpress de configurar y de usar SSL. Para más detalles sobre esta tarea, consulte aquí -> docs.microsoft.com/en-us/iis/extensions/using-iis-express/…
    • Este fijo que es para mí, y me escribió una ps script de actualización para un rango de puertos: gist.github.com/NiryaAestus/d230e1ea1b5f96e85715b86ed8bc144f (lo Siento por el enlace externo, la incrustación de código en los comentarios no parecen amigables.)

  5. 21

    El problema que estaba experimentando tenía que ver conmigo, en algún momento en el tiempo, permitiendo HSTS para localhost y no darse cuenta de que esto iba a romper mi http://localhost:someport en IIS Express.

    HSTS le dice al navegador (Chrome, en mi caso) SIEMPRE solicita una dirección URL con HTTPS. Para ello incluso a pesar de que me faltaba incluso habilitado SSL para mi MVC 5 de la aplicación, el navegador todavía intente acceder a mi sitio con HTTPS en la dirección URL en lugar de HTTP.

    La revisión?

    1. De Surf para chrome://net-internals/#hsts
    2. En la sección borrar, escribir «localhost» y eliminar el registro de Chrome.
    • Sí, hsts puede ser una causa de este problema. Esto hizo que el ttrink para mí, gracias.
  6. 12

    Ninguna de las opciones anteriores trabajó para mí. Tuve que hacer lo siguiente:

    1. Desinstalado IIS Express 8.0
    2. Elimina todas las configuraciones en el directorio mis Documentos para IIS Express
    3. Instalar IIS Express 8.0
    4. Eliminado el proyecto en mi máquina local y descargar una versión limpia de TFS
    5. Ejecutó el proyecto – que luego corrió a través de SSL y soy capaz de depurar

    Tengo los pasos de este hilo.

    Espero que esto ayude.

    • Acabo de unstall iis express, y vuelva a instalarlo. ahora funciona
    • En mi caso fue suficiente para sólo de reparación de la instalación de IIS (en el Panel de Control).
    • Y la gente paga Microsoft dinero para esto? Cómo increíblemente mal hace el software tiene que ser diseñado de manera que la única corrección es una completa desinstalar y volver a instalar?!
  7. 5

    En mi caso, he creado un certificado auto-firmado y había que trabajar, excepto yo estaba recibiendo un error en el navegador, ya que el certificado no es de confianza. Así que se trasladó el cert en las entidades emisoras Raíz de Confianza > Certificados en la carpeta de Certificados de complemento. Funcionó, y luego cerré Visual Studio para el día.

    Al día siguiente, empecé mi proyecto y he recibido el mensaje de error mencionado en la pregunta original. El problema es que el certificado ha configurado IISExpress con debe existir en el Personal > carpeta de Certificados o HTTPS dejará de funcionar. Una vez IIS Express inicia correctamente, puede arrastrar el cert de vuelta a la ubicación de confianza. Se va a seguir trabajando hasta que se reinicie IIS Express.

    No querer andar con arrastrar el cert de ida y vuelta cada vez, acabo de colocar una copia del certificado en los dos lugares y ahora todo funciona bien.

    • Usted puede Copiar + Pegar un cert en el interior del certificado de complemento como si se tratara de un archivo regular. Me tomó AÑOS para averiguarlo.
  8. 5

    Tengo un mismo problema en Visual Studio 2015. Porque yo uso el enlace SSL en la web.config

    <rewrite>
       <rules>   
         <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
           <match url="(.*)" />
           <conditions>
              <add input="{HTTPS}" pattern="off" />
           </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
         </rule>
       </rules>
    </rewrite>
    

    Y me puede solucionar el problema con la respuesta del Señor djroedger. Mediante la sustitución de

    <add input="{HTTPS}" pattern="off" />
    

    con

    <add input="{HTTP_HOST}" pattern="localhost" negate="true" />

    en mi web.config, así que mi código es

    <rewrite>
      <rules>   
        <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
             <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
          </conditions>
             <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
        </rule>
     </rules>
    </rewrite>
    
  9. 4

    Yo tenía este problema, yo tenía configurado mi sitio para el mundial de requerir https en FilterConfig.cs.

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new RequireHttpsAttribute());
        }
    

    Me había olvidado de cambiar la url del proyecto a https: a partir de este tutorial http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth-sql-database/ en HABILITAR SSL parte 4. Esta causa de los errores que usted estaba recibiendo.

  10. 3

    Otro problema que me sucedió dos veces:

    En IIS Express applicationhost.config el orden de los enlaces no importa. Una unión podría tener prioridad sobre su enlace SSL, lo que no es de trabajo.

    Ejemplo:

    <site name="MySite007" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Users\myuser\projects\mysolutionfolder\MyProject.Service" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation=":8081:localhost" />
            <binding protocol="http" bindingInformation=":8080:" /><!-- evil binding -->
            <binding protocol="https" bindingInformation="*:44327:localhost" />
        </bindings>
    </site>
    

    Puede que haya agregado un enlace similar a la de la segunda para ser capaz de acceder a su WebService desde fuera localhost. Debido a esta unión se escucha en cualquier dirección, parece anular el enlace SSL aunque un puerto diferente fue utilizado.

    Quitar el el mal de unión o mover hacia abajo.

    • Este fijo que es para mí. Gracias!
  11. 2

    Esto es anecdótico como por casualidad de un compañero de trabajo, pero supuestamente este es un problema con chrome forzar https. Yo generalmente lanzamiento de firefox, así que no había visto este problema antes. El uso de firefox o ie trabajado para mi compañero de trabajo.

  12. 1

    El ‘Digicert certificados de instalación de corrector‘ a menudo es útil en situaciones como esta.

    Pude verificar el certificado SSL que se trató fue el que yo estaba esperando al comparar el número de serie.

    Conexión SSL /el Restablecimiento de la Conexión con IISExpress

    Para mí @Jason Kleban respuesta fue el problema real, pero esto puede ser una utilidad muy útil para comprobar sus afirmaciones acerca de lo que el certificado está siendo cargado.

    • Wow, muchísimas gracias. La única solución que trabajó para mí.
  13. 1

    La eliminación de IISExpress y vs directorios y utilizando el puerto ssl gama de 44300 a 44399 (inclusive) de este artículo trabajado para mí

    • gracias por esta trabajado para mí, excepto que yo no le pide que confíe en el certificado en el VS – soy demasiado perezoso para hacer algo acerca de que lo va a ignorar las advertencias y proceder!
  14. 1

    Si necesidad para utilizar un puerto fuera de la 44300-44399 gama, he aquí una solución:

    • Crear un nuevo sitio en IIS (no Express)
    • Enlazar HTTPS para el puerto que necesita
    • De Certificado SSL, escoger IIS Express Certificado de Desarrollo de
    • Una vez creado el sitio, detenerlo, ya que en realidad no necesita estar en ejecución

    Esto registra el IIS Express certificado de Desarrollo con ese puerto y es la forma más sencilla que he encontrado para conseguir alrededor de la 44300-44399 rango de requisito.

  15. 0

    Mi problema fue causado por el Violinista. Cuando el Violinista se bloquea de vez en cuando se mete con su configuración de proxy. Simplemente el lanzamiento de Fiddler parecía a arreglar todo (tal vez se repara a sí mismo de alguna manera).

  16. 0

    Yo había reconstruido mi equipo. Este hilo me dio las pistas, donde me di cuenta de que en la configuración del proyecto>Web, el proyecto se ha configurado para utilizar HTTP y el puerto HTTP. Mediante una actualización a HTTPS y la correcta puerto HTTPS, todo comenzó a trabajar de nuevo.

  17. 0

    A seguir en otras respuestas acerca de la configuración del puerto SSL entre 44300 y 44399, yo era incapaz de cambiar el SSL Habilitado propiedad en Visual Studio, ni en el conjunto de una específica dirección URL de SSL. Otras respuestas, como la reparación de IIS Express no son de ayuda. La solución era entrar en el .vs carpeta paralela a la del archivo sln, abra la configuración de la subcarpeta, y, a continuación, editar el applicationhost.archivo de configuración. Entonces, he añadido el https línea manualmente y reiniciar VS.

    <binding protocol="http" bindingInformation="*:24941:localhost" />
                    <binding protocol="https" bindingInformation="*:44301:localhost" />
    

Dejar respuesta

Please enter your comment!
Please enter your name here