Pourquoi le processus système écoute-t-il sur le port 80?

79

J'utilise Windows 7 RC1. J'ai de multiples problèmes à faire fonctionner IIS sur mon système et aujourd'hui, lorsque j'ai installé une nouvelle application et que j'ai essayé de le charger à l'aide de http: \ localhost \ MyApplication, je ne reçois absolument aucune erreur ni aucun chargement de page. Juste une jolie page blanche et blanche.

J'ai creusé et j'ai trouvé quelque chose sur un autre processus d'écoute sur le port 80, alors j'ai fait une analyse à l'aide de netstat -aon | findstr 0.0:80 et a découvert que PID 4 écoutait sur ce port.

Le PID 4 ne s'affiche pas dans le gestionnaire de tâches. J'ai donc lancé Process Explorer et m'a montré que le PID 4 était le processus système. (Plusieurs recherches sur Google semblent indiquer que le système utilise toujours le PID 4).

Depuis lors, je suis fondamentalement coincé. Je n'ai aucune idée pourquoi le système a besoin du port 80 et que faire à ce sujet.

Si vous recherchez les chaînes suivantes dans Google, vous trouverez deux articles utiles sur Experts-Exchange en haut des résultats de la recherche et vous pourrez les lire pour obtenir des informations utiles.

(Si je donnais l'URL directe aux pages, Experts-Exchange vous demanderait de payer ... mais lorsque vous cliquez sur les résultats d'une recherche Google, vous pouvez faire défiler l'écran jusqu'en bas pour lire les échanges.)

Voici les recherches google ...
"Processus système à l'écoute sur le port 80 (Vista)"
"SYSTEM Process écoute sur le port 80 et empêche l'exécution du site Web par défaut d'IIS"

La dernière entrée du premier résultat montre comment faire une trace de http.sys à l'URL suivante:

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

Trace n'a rien montré d'utile. Des pensées?

Seth Spearman
la source
Les mêmes problèmes ici, sauf que j'ai essayé toutes les réponses comme suggéré et rien. Je ne peux pas simplement arrêter les services, car il s'agit d'un serveur cloud hors site.
Jerry Dodge
Voulez-vous dire que vous utilisez Windows 7 SP1 et non RC1?
cmorse
4
Est-ce que vous utilisez Skype? support.skype.com/fr/faq/FA148/…
Plutext
Cela ne résout probablement pas le problème. De toute façon, vous pouvez modifier le port Apache en 8080... Bien, ce n'est pas une solution, mais peut fonctionner temporairement jusqu'à ce que vous obteniez la solution appropriée ... La solution @rakslice m'a résolu le problème
Girardi
Le truc Skype est la solution! Fermez Skype et démarrez Apache. terminé!
Codebeat

Réponses:

28

Ce post sur Comment faire fonctionner Apache sur le port 80 sous Windows 7 (Internet archive) décrit votre point.

Il semble que le http.sys Le service '(Windows Remote Management?) Est activé par défaut dans Windows 7.
Parcourez les commentaires sur ce lien pour d'autres notes ...

le site de trait d'union n'a pas nécessairement les seules réponses.

nik
la source
1
Un autre excellent article: devside.net/wamp-server/…
thorn
2
Et cela est toujours d'actualité avec Windows 8.1
Sverrir Sigmundarson
3
Le site est hors ligne. Pouvez-vous ajouter les informations essentielles à la réponse?
fixer1234
4
Pour moi, c’était le service de publication sur le World Wide Web; il était réglé par défaut sur automatique et devait utiliser le port 80.
rockerston
1
Mis à niveau de Windows 7 à Windows 10, le service de publication World Wide Web est activé automatiquement. Fou parce que je n'utilise même pas IIS.
Phil_1984_
49

'Service de l'agent de déploiement Web' s'exécute sur le port 80 en tant que système. Vous pourriez avoir cela en cours d'exécution si vous utilisez WebMatrix.

N Reed
la source
Lien connexe: eat.cheezburger.com/author/johnc . J'ai désinstallé les deux programmes répertoriés: "Microsoft Web Deploy 2.0" et "Outil de déploiement Web" (ainsi que WebMatrix lui-même).
Frank Schwieterman
1
Voir stackoverflow.com/questions/5867392 pour plus d'informations sur la modification de ce port.
tony722
J'ai arrêté le service Web Deployment Agent et le paramétré sur Démarrage manuel, puis confirmé que je pouvais toujours publier sur IIS sur ce serveur à partir de Visual Studio et que tout allait bien. Le port 80 est maintenant disponible pour moi et mes autres fonctionnalités fonctionnent toujours.
JMD
net stop "Web Deployment Agent Service" libéré 80 pour moi.
Philippe Signoret
45

Ouvrez Services.msc et arrêtez ce service "Services de génération de rapports sur serveur SQL (MSSQLSERVER)"

enter image description here

J'avais tout essayé, mais cela a fonctionné pour moi:

d'autres instructions sur la façon d'arrêter ce service sont ci-dessous

  1. Clic droit sur Mon ordinateur
  2. Sélectionner Gérer
  3. Double clic Services et applications
  4. Puis double-cliquez Prestations de service
  5. Clic droit sur "Services de rapport de serveur SQL (MSSQLSERVER)"
  6. Sélectionner Arrêtez ... et le tour est joué, le port 80 est sorti
Isabel Grobler
la source
7
+1 C'était bien SQL Server dans mon cas.
Assaf Levy
Cela a fonctionné pour moi aussi. J'ai arrêté tous les services liés à SQL (y compris celui-ci) et le port 80 a été publié.
Mark Lakata
+1, mais j'ai besoin de SSRS pour s'exécuter, alors je suppose que je dois dire à SSRS d'utiliser un autre port?
Chris Moutray
"Je n'utilise pas ce port? Je vais prendre ça! Oh désolé, avez-vous besoin de ça? Vous n'avez pas reçu le mémo?"
batCattle
1
@ AssafLevy votre commentaire est un mauvais service rendu aux gens et embrouille les choses et pourrait faire penser que la réponse n’est pas aussi bonne. Ce n'est pas SQL Server, ce sont des rapports SQL Server. Le serveur SQL s'exécute sur 3306. La génération de rapports sur le serveur SQL est essentielle et s'exécute sur le port 80.
barlop
19

Vous pouvez arrêter le service HTTP temporairement à partir de la ligne de commande:

  1. Exécutez une invite de commande administrateur (par exemple, Démarrer, recherchez cmd, faites un clic droit dessus, choisissez "Exécuter en tant qu’administrateur", approuvez l’invite UAC le cas échéant.)
  2. Type net stop HTTP
  3. S'il existe d'autres services en cours d'exécution qui dépendent du service HTTP, vous obtiendrez une liste. revérifier pour voir si il y a quelque chose répertorié là vous ne pouvez pas supporter de faire sans Ou, si vous empêchez simplement HTTP d'utiliser le port 80 temporairement, notez les services dépendants que vous voudrez redémarrer une fois que vous avez terminé avec le port. De toute façon, si ça vous va, entrez y continuer.
  4. Certains services dépendants peuvent émettre des avertissements de contrôle d'arrêt annulant l'opération. répète juste net stop HTTP jusqu'à ce qu'il soit arrêté (c'est-à-dire jusqu'à ce qu'il indique The HTTP service was stopped successfully. )
  5. Plus tard, vous pourrez redémarrer l’un des services dépendants en utilisant net start ou en utilisant l'élément Services dans Outils d'administration, et le service HTTP sera redémarré automatiquement.
rakslice
la source
1
Ceci est très utile pour déterminer les services dépendants - merci!
Rory
c'était la solution pour moi!
Girardi
Pour moi, il a arrêté tous les services associés, puis dit "Je ne peux pas arrêter le service HTTP" et net stop http me dit à nouveau de "réessayer plus tard". Quel est le problème avec mon système :-)
Tominator
En utilisant net stop HTTP a travaillé pour moi.
Paul Williams
Si vous obtenez un try again later message, vous exécutez peut-être le service de déploiement Web Microsoft. support.microsoft.com/kb/2597817 Si vous utilisez réellement cela pour maintenir IIS, vous ne souhaitiez probablement pas arrêter HTTP en premier lieu =).
rakslice
3

telnet localhost 80 renvoie HttpAPI / 2.0, ce qui signifie "service de génération de rapports sur serveur SQL". Arrêter le même port du release 80.

vishnu
la source
J'ai trouvé que les services de génération de rapports sur le serveur SQL étaient également responsables.
J.T.
C’est un outil de débogage utile, qui vous permet d’utiliser «telnet» pour obtenir plus d’informations qu’un navigateur Web. Merci. Les services de génération de rapports sur le serveur SQL étaient également coupables.
Mark Lakata
0

Prenez Process Explorer, exécutez-le, ouvrez les propriétés TCP / IP de chaque processus (service), recherchez un processus (service) qui écoute le port http (80) et désactivez-le.

J'ai trouvé qu'Autodesk EDM Server écoutait le port http (80).

nICEsCREAM
la source
3
Cela ne fonctionne pas pour les services s'exécutant à l'intérieur du système (c'est-à-dire avec un PID de 4)
N Reed
Je pense que vous feriez mieux de faire «netstat -anbo». Il vous dira directement ce qui se trouve sur le port 80 ... sauf s’il s’agit du PID 4.
Mark Lakata