Это на компьютере с Windows Vista, на котором запущен IIS 7. Пытается запустить веб-сайт по умолчанию, но он говорит: «Процесс не может получить доступ к файлу, потому что он используется другим процессом?
Если я изменю привязку к порту 82, все будет нормально. Думаю, что-то работает на 80. Как мне узнать, что это такое?
netstat -ab | find ":80 "
Обратите внимание на пробел после 80. Для / b требуется командная строка с повышенными правами.
РЕДАКТИРОВАТЬ: После тщательной проверки, передача netstat -ab в find с этой строкой поиска не отображает исполняемый файл, который получает ключ -b. Это потому, что -b отображает процесс владения в новой строке. = (Я терплю неудачу. Но, по крайней мере, первая половина команды будет работать. Мне просто нужно было поработать с командой find. =)
Первое, что я сделаю, это открою браузер, чтобы http: // localhost / и посмотреть, что будет ... Тогда я, конечно, проверил бы netstat.
Не знаю в Vista, но в XP вы могли:
netstat / a / b
на консоли, чтобы проверить это.
Запустите командную строку от имени администратора и выполните команду netstat -ab
и найдите соответствующую строку в выводе. Это должно сообщить вам имя исполняемого файла процесса, прослушивающего этот порт.
Когда у вас есть это, есть хороший шанс, что вы поймете, что искать, но если вы не уверены, что это за исполняемый файл, вы можете запустить Диспетчер задач, перейти на вкладку Процессы, найти процесс в вопрос, щелкните его правой кнопкой мыши и выберите Свойства, чтобы получить дополнительную информацию. Если существует несколько процессов с таким именем, запустите netstat -ao, чтобы получить идентификатор процесса.
Вы можете использовать NETSTAT -ADO для просмотра используемых портов, но, к сожалению, это не дает вам имя приложения, открывшего конкретный порт. Он дает вам идентификатор процесса, который вы можете использовать для обнуления конкретной программы в диспетчере задач.
Кроме того, вы можете скачать SysInternals ' Tcpvcon программа. При запуске вы увидите полный список открытых портов, а также программы, которые их открыли.
Sysinternals - как упоминалось в сообщении Дэйва (извините за неверную информацию в моем первоначальном сообщении)
или
http://www.howtonetworking.com/command/openport1.htm
Описывает, как это сделать из командной строки.
В других ответах вы узнаете, для чего открыт порт 80. Но это может быть Система, если порт 80 был открыт другим приложением, используя HTTP.SYS
(как это делает IIS1).
Чтобы узнать, что использует HTTP.SYS для прослушивания, вы можете использовать (из командной строки с повышенными привилегиями):
netsh http show servicestate
(Это дает много информации.)
Также HttpCfg.exe
может работать (из пакета ресурсов Windows XP SP2).
1 Вот почему, даже если IIS запущен на порту 80, он не отображается как прослушивающий порт 80.