Почему системный процесс прослушивает порт 80?

81

Я использую Windows 7 RC1. У меня много проблем с получением IIS для работы в моей системе, и сегодня, когда я установил новое приложение и попытался загрузить его, используя http: \ localhost \ MyApplication, я не получаю абсолютно никаких ошибок и не загружаю страницу. Просто красивая, белая пустая страница.

Я немного покопался и нашел кое-что о каком-то другом процессе, прослушивающем порт 80, поэтому я сделал сканирование с использованием netstat -aon | findstr 0.0:80и обнаружил, что PID 4 прослушивает этот порт.

PID 4 не отображается в диспетчере задач, поэтому я запустил Process Explorer, и он показал мне, что PID 4 - это системный процесс. (Множественный поиск в Google показывает, что система всегда использует PID 4).

С тех пор я в основном застрял. Я понятия не имею, зачем Системе нужен порт 80 и что с этим делать.

Если вы воспользуетесь следующими строками Google, вы найдете две полезные статьи Experts-Exchange в верхней части результатов поиска и можете прочитать их для получения полезной информации.

(Если бы я дал прямой URL-адрес страницам, Experts-Exchange попросил бы вас заплатить ... но когда вы нажмете на результаты поиска Google, вы можете прокрутить весь путь до конца, чтобы прочитать обмены.)

Вот поиски Google ...
"Системный процесс прослушивает порт 80 (Vista)"
"Системный процесс прослушивает порт 80 и предотвращает запуск веб-сайта IIS по умолчанию"

Последняя запись из первого результата показала, как выполнить трассировку http.sys по следующему URL:

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

Трассировка ничего полезного не показала. есть идеи?

Сет Спирман
источник
Те же проблемы здесь, за исключением того, что я попробовал все ответы как предложено и ничего. Я не могу просто начать закрывать сервисы, потому что это сторонний облачный сервер.
Джерри Додж,
Вы имели в виду, что вы используете Windows 7 SP1, а не RC1?
cmorse
4
Вы используете Skype? support.skype.com/en/faq/FA148/…
Plutext
Возможно, это на самом деле не решит вашу проблему, в любом случае вы можете изменить порт Apache на 8080... Ну, это не решение, но может работать временно, пока вы не получите правильное решение ... Решение @rakslice решило проблему для меня
Джирарди
Скайп вещь это решение! выключи скайп и запусти апач. сделанный!
Codebeat

Ответы:

28

Этот пост о том, как заставить Apache работать через порт 80 в Windows 7 (интернет-архив), описывает вашу точку зрения.

Похоже, что http.sysв Windows 7 по умолчанию включена служба ' ' (удаленное управление Windows?).
Просмотрите комментарии по этой ссылке, чтобы увидеть еще несколько заметок ...

сайт-гипс не обязательно имеет единственные ответы.

Nik
источник
1
Еще одна интересная статья: devside.net/wamp-server/...
колючка
2
И это все еще актуально сегодня с Windows 8.1
Сверрир Сигмундарсон
3
Сайт не в сети. Можете ли вы добавить необходимую информацию к ответу?
fixer1234
4
Для меня это была служба публикации в World Wide Web - по умолчанию она была установлена ​​автоматически и должна использовать порт 80.
rockerston
1
Обновлен с Windows 7 до Windows 10, и служба автоматической публикации World Wide Web была включена. Сумасшедший, потому что я даже не использую IIS.
Phil_1984_
49

«Служба агента веб-развертывания» работает на порту 80 как система. Это может быть запущено, если вы используете WebMatrix.

Рид
источник
Ссылка по теме: eat.cheezburger.com/author/johnc . Я удалил две перечисленные программы: «Microsft Web Deploy 2.0» и «Инструмент веб-развертывания» (а также сам WebMatrix)
Фрэнк Швитерман,
Ссылка по теме: remkoweijnen.nl/blog/2012/01/02/…
Ремко
1
См. Stackoverflow.com/questions/5867392 для получения информации о том, как изменить этот порт.
tony722
Я остановил службу агента веб-развертывания и установил ее на запуск вручную, затем подтвердил, что я все еще могу публиковать в IIS на этом сервере из Visual Studio, и это все хорошо. Порт 80 теперь доступен для меня, и другие мои функциональные возможности все еще работают.
JMD
net stop "Web Deployment Agent Service"освободил 80 для меня.
Филипп Синьоре
46

Откройте Services.msc и остановите эту службу «Службы отчетов сервера Sql (MSSQLSERVER)»

введите описание изображения здесь

Я пробовал ВСЕ, но это сработало для меня:

дальнейшие инструкции о том, как остановить эту службу, приведены ниже.

  1. Щелкните правой кнопкой мыши на Мой компьютер
  2. Выберите Управление
  3. Дважды щелкните Службы и приложения
  4. Затем дважды щелкните Сервисы
  5. Щелкните правой кнопкой мыши «Службы отчетов сервера Sql (MSSQLSERVER)»
  6. Выберите Стоп ... и вуаля, порт 80 был освобожден
Изабель Гроблер
источник
7
+1. Это был действительно SQL Server в моем случае.
Ассаф Леви
Это сработало и для меня. Я остановил все службы, связанные с SQL (включая эту), и порт 80 был освобожден.
Марк Лаката
+1 но мне нужен SSRS, так что я думаю, что в будущем мне нужно указать SSRS использовать другой порт?
Крис Мутрей
"Не используете этот порт? Я возьму это! Ой, извини, тебе это нужно? Разве ты не получил памятку?"
batCattle
1
@AssafLevy Ваш комментарий является плохой услугой для людей и затуманивает вещи, и некоторые могут подумать, что ответ не так хорош, как есть. Это не SQL Server, это отчеты SQL Server. SQL-сервер работает на
3306. Проблема
19

Вы можете временно остановить службу HTTP из командной строки:

  1. Запустите командную строку администратора (например, «Пуск», выполните поиск cmd, щелкните ее правой кнопкой мыши, выберите «Запуск от имени администратора», подтвердите запрос UAC, если таковой имеется).
  2. Тип net stop HTTP
  3. Если есть другие запущенные службы, которые зависят от службы HTTP, вы получите список; перепроверьте, есть ли там что-нибудь, без чего вы не можете обойтись. Или, если вы просто останавливаете HTTP, чтобы временно использовать порт 80, запишите те зависимые службы, которые вы захотите перезапустить, как только закончите с портом. В любом случае, если все в порядке, войдите, yчтобы продолжить.
  4. Некоторые зависимые службы могут выдавать предупреждения управления остановом, которые отменяют операцию; просто повторять net stop HTTPдо тех пор, пока не будет остановлен (то есть , пока он не говорит The HTTP service was stopped successfully.)
  5. Позже вы можете перезапустить любую из зависимых служб, используя net startили используя элемент «Службы» в разделе «Администрирование», и служба HTTP будет снова запущена автоматически.
rakslice
источник
1
Это очень полезно для определения зависимых услуг - спасибо!
Рори
это было решением для меня!
Джирарди
Для меня он остановил все связанные службы, затем сказал: «Невозможно остановить службу HTTP», и при net stop httpповторном запуске мне нужно «повторить попытку позже». Что не так с моей системой :-)
Tominator
Использование net stop HTTPсработало для меня.
Пол Уильямс
Если вы получаете, возможно try again later message, вы используете службу веб-развертывания Microsoft. support.microsoft.com/kb/2597817 Если вы на самом деле используете это для поддержки IIS, вы, вероятно, не захотите останавливать HTTP в первую очередь =).
Ракслице
3

telnet localhost 80 возвращает HttpAPI / 2.0, что, в свою очередь, означает «Служба отчетов сервера Sql». Остановка же выпускает порт 80.

Вишну
источник
Я обнаружил, что службы отчетов SQL-сервера также были виновником.
JT
Это полезный инструмент отладки, позволяющий использовать telnet для получения большей информации, чем может дать вам веб-браузер. Благодарю. Службы отчетов SQL-сервера также были виновником в моем случае.
Марк Лаката
0

Возьмите ProcessExplorer, запустите его, откройте свойства TCP / IP каждого процесса (службы), найдите процесс (службу), прослушивающий порт http (80), и отключите его.

Я обнаружил, что Autodesk EDM Server прослушивает порт http (80).

nICEsCREAM
источник
3
Это не работает для служб, работающих внутри системы (т. Е. С PID 4)
N Reed
Я думаю, вам лучше делать netstat -anbo. Он скажет вам прямо, что находится на порте 80 ... за исключением того, что это PID 4.
Марк Лаката