¿Por qué el proceso del sistema está escuchando en el puerto 80?

81

Estoy ejecutando Windows 7 RC1. Tengo varios problemas para que IIS funcione en mi sistema y hoy, cuando instalé una nueva aplicación e intenté cargarla usando http: \ localhost \ MyApplication, no recibo absolutamente ningún error y no recibo carga de la página. Solo una bonita página blanca en blanco.

Investigué un poco y encontré algo sobre algún otro proceso escuchando en el puerto 80, así que escaneé netstat -aon | findstr 0.0:80y descubrí que PID 4 estaba escuchando en ese puerto.

PID 4 no se muestra en el administrador de tareas, así que encendí Process Explorer y me mostró que PID 4 es el proceso del sistema. (Múltiples búsquedas en Google parecen indicar que el sistema siempre usa PID 4).

Desde entonces estoy básicamente atrapado. No tengo idea de por qué el sistema necesita el puerto 80 y qué hacer al respecto.

Si buscas en Google las siguientes cadenas, encontrarás dos útiles artículos de intercambio de expertos en la parte superior de los resultados de búsqueda y puedes leerlos para obtener información útil.

(Si le di la URL directa a las páginas, Experts-Exchange le pedirá que pague ... pero cuando hace clic en los resultados de una búsqueda en Google, puede desplazarse hasta el final para leer los intercambios).

Aquí están las búsquedas de Google ...
"El proceso del sistema está escuchando en el puerto 80 (Vista)"
"El proceso del sistema está escuchando en el puerto 80 y evita que se ejecute el sitio web predeterminado de IIS"

La última entrada del primer resultado mostró cómo hacer un seguimiento de http.sys en la siguiente URL:

http://blogs.msdn.com/wndp/archive/2007/01/18/event-tracing-in-http-sys-part-1-capturing-a-trace.aspx

Trace no mostró nada útil. ¿Alguna idea?

Seth Spearman
fuente
Los mismos problemas aquí, excepto que probé todas las respuestas sugeridas y nada. No puedo simplemente comenzar a cerrar los servicios porque este es un servidor en la nube fuera del sitio.
Jerry Dodge
¿Quiso decir que está ejecutando Windows 7 SP1 y no RC1?
cmorse
44
¿Estás ejecutando Skype? support.skype.com/en/faq/FA148/…
Plutext
Probablemente eso no resuelva su problema, de todos modos puede cambiar el puerto Apache a 8080... Bueno, eso no es una solución, pero puede funcionar temporalmente hasta que obtenga la solución adecuada ... La solución @rakslice me resolvió el problema
Girardi
¡Lo de Skype es la solución! apague skype y comience apache. ¡hecho!
Codebeat

Respuestas:

28

Esta publicación sobre Cómo hacer que Apache se ejecute en el puerto 80 en Windows 7 (archivo de Internet) describe su punto.

Parece que el servicio ' http.sys' (¿Administración remota de Windows?) Está habilitado de forma predeterminada en Windows 7.
Revise los comentarios en ese enlace para obtener más notas ...

El sitio de la red no necesariamente tiene las únicas respuestas.

nik
fuente
1
Otro gran artículo: devside.net/wamp-server/…
thorn
2
Y esto sigue siendo relevante hoy con Windows 8.1
Sverrir Sigmundarson
3
El sitio está fuera de línea. ¿Puedes agregar la información esencial a la respuesta?
Fixer1234
44
Para mí fue el Servicio de publicación World Wide Web: se configuró en automático de forma predeterminada y debe usar el puerto 80.
rockerston
1
Se actualizó de Windows 7 a Windows 10 y activó el servicio de publicación World Wide Web a automático. Loco porque ni siquiera uso IIS.
Phil_1984_
49

El 'Servicio de agente de implementación web' se ejecuta en el puerto 80 como Sistema. Es posible que tenga esto ejecutándose si está utilizando WebMatrix.

N Reed
fuente
Enlace relacionado: eat.cheezburger.com/author/johnc . Desinstalé los dos programas que figuran en la lista: "Microsft Web Deploy 2.0" y "Herramienta de implementación web" (así como WebMatrix en sí)
Frank Schwieterman
Enlace relacionado: remkoweijnen.nl/blog/2012/01/02/…
Remko
1
Consulte stackoverflow.com/questions/5867392 para obtener información sobre cómo cambiar este puerto.
tony722
Detuve el servicio del Agente de implementación web y lo configuré en Inicio manual, luego confirmó que todavía puedo publicar en IIS en este servidor desde Visual Studio y todo está bien. El puerto 80 ahora está disponible para mí, y mi otra funcionalidad aún funciona.
JMD
net stop "Web Deployment Agent Service"liberado 80 para mí.
Philippe Signoret
46

Abra Services.msc y detenga este servicio "Servicios de informes del servidor SQL (MSSQLSERVER)"

ingrese la descripción de la imagen aquí

Había intentado TODO, pero eso funcionó para mí:

A continuación encontrará más instrucciones sobre cómo detener ese servicio.

  1. Haga clic derecho en mi computadora
  2. Seleccione Administrar
  3. Haga doble clic en Servicios y aplicaciones
  4. Luego haga doble clic en Servicios
  5. Haga clic derecho en "Servicios de informes del servidor SQL (MSSQLSERVER)"
  6. Seleccione Stop ... y listo, el puerto 80 fue lanzado
Isabel Grobler
fuente
77
+1. De hecho, fue SQL Server en mi caso.
Assaf Levy
Esto funcionó para mí también. Detuve todos los servicios relacionados con SQL (incluido este) y se lanzó el puerto 80.
Mark Lakata
+1 pero necesito SSRS en ejecución, así que supongo que en el futuro necesito decirle a SSRS que use un puerto diferente.
Chris Moutray
"¿No usas ese puerto? ¡Lo tomaré! Oh, perdón, ¿lo necesitabas? ¿No recibiste el memo?"
batCattle
1
@AssafLevy su comentario es perjudicial para las personas y nubla las cosas y puede hacer que algunos piensen que la respuesta no es tan buena como lo es. No es SQL Server, es un informe de SQL Server. El servidor SQL se ejecuta en 3306. El problema es el informe del servidor SQL y se ejecuta en el puerto 80
barlop
19

Puede detener el servicio HTTP temporalmente desde la línea de comando:

  1. Ejecute un símbolo del sistema del administrador (por ejemplo, Inicio, búsqueda cmd, haga clic con el botón derecho sobre él, elija "Ejecutar como administrador", apruebe el indicador del UAC, si corresponde)
  2. Tipo net stop HTTP
  3. Si hay otros servicios en ejecución que dependen del servicio HTTP, obtendrá una lista; revisa dos veces para ver si hay algo en la lista que no puedas soportar prescindir. O, si solo está deteniendo HTTP para usar el puerto 80 temporalmente, tome nota de los servicios dependientes que querrá reiniciar una vez que haya terminado con el puerto. De cualquier manera, si está bien, ingrese ypara continuar.
  4. Algunos servicios dependientes pueden arrojar advertencias de control de parada que cancelan la operación; simplemente repita net stop HTTPhasta que se detenga (es decir, hasta que diga The HTTP service was stopped successfully.)
  5. Más adelante, puede reiniciar cualquiera de los servicios dependientes, utilizando net starto utilizando el elemento Servicios en Herramientas administrativas, y el servicio HTTP se reiniciará automáticamente.
rakslice
fuente
1
Esto es muy útil para determinar los servicios dependientes, ¡gracias!
Rory
¡Esta fue la solución para mí!
Girardi
Para mí, detuvo todos los servicios relacionados, luego dijo "No se puede detener el servicio HTTP", y comenzar de net stop httpnuevo me dice que "intente nuevamente más tarde". Lo que está mal en mi sistema :-)
Tominator
Usar net stop HTTPfuncionó para mí.
Paul Williams
Si está obteniendo un try again later message, puede estar ejecutando el Servicio de implementación web de Microsoft. support.microsoft.com/kb/2597817 Si realmente está usando eso para mantener IIS, probablemente no quería detener HTTP en primer lugar =).
rakslice
3

telnet localhost 80 devuelve HttpAPI / 2.0 que a su vez significa "servicio de informes del servidor SQL". Detener el mismo libera el puerto 80.

vishnu
fuente
Descubrí que los servicios de informes del servidor SQL también eran los culpables.
JT
Esta es una herramienta de depuración útil, para usar 'telnet' para obtener más información de la que le proporcionará un navegador web. Gracias. Los servicios de informes del servidor SQL también fueron los culpables en mi caso.
Mark Lakata
0

Tome ProcessExplorer, ejecútelo, abra las propiedades TCP / IP de cada proceso (servicio), encuentre el proceso (servicio) que escucha el puerto http (80) y apáguelo.

Encontré que Autodesk EDM Server estaba escuchando el puerto http (80).

NICEsCREAM
fuente
3
Esto no funciona para los servicios que se ejecutan dentro del sistema (es decir, con un PID de 4)
N Reed
Creo que es mejor que hagas 'netstat -anbo'. Le dirá directamente qué hay en el puerto 80 ... excepto si es PID 4.
Mark Lakata