Не вдається запустити веб-сайт у IIS (використовувати інший процес)


96

Коли я намагаюся запустити сайт у IIS, він говорить:

процес не може отримати доступ до файлу, оскільки він використовується іншим процесом

Я здійснив пошук в Google і виявив, що інший сайт, можливо, використовував порт 80, але в MyIIS я бачу, що лише цей сайт використовує порт 80. Що ще може використовувати порт 80 або є інша проблема?


перезапустіть систему один раз, а потім спробуйте.
عثمان غني

я зробив це, але знову трапилася та сама проблема

1
Спробуйте налаштувати IIS для запуску на іншому порту. На вашому комп'ютері може працювати інший сервер. Будь-який екземпляр apache? Є кілька хробаків, які також відкривають порт 80 як бэкдор на заражених комп’ютерах.
nunespascal

Цей текст помилки, безумовно, не є корисним, але якщо ви перевірите журнали перегляду подій, це дасть вам підказку про те, що сталася помилка під час прив'язки до порту 8080 (використовується веб-сайтом у моєму IIS). На моєму вікні Windows 10 він зафіксував дві помилки з джерела IIS-W3SVC та HttpEventджерела. Текст журналу другої події - Unable to bind to the underlying transport for [::]:8080. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.. Порт 8080 використовувався службою Oracle. Я змінив порт, який використовував мій веб-сайт, на 8081.
RBT,

Відповіді:


176

Перевірте за допомогою командного рядка netstat -aonабо netstat -aon | findstr 0.0:80в командному рядку, щоб побачити, який ідентифікатор процесу СЛУХАЄТЬСЯ портувати: 80, а потім стежте за цим ідентифікатором процесу (PID) у диспетчері завдань із позначеним видом-> виділенням стовпців-> ідентифікатором процесу . Завершіть цей процес, перезапустіть IIS, і все готово. ( Примітка: якщо у вас встановлений Skype , спробуйте спочатку вийти з цього процесу. )

У сучасному диспетчері завдань вам потрібно перейти на вкладку Подробиці для пошуку PID. Або, як згадував @Nikita G у коментарях, ви можете використовувати цю команду, щоб знайти завдання у своєму командному рядку:

tasklist /FI "PID eq 123"

Примітка: змініть 123PID, повернутий з першої команди.


11
Дякую також за коментар Skype.
Кіт

Skype працював на порту 80, а мої веб-сайти також налаштовані на порту 80, тому я вирішив цю проблему, вийшовши зі Skype, а потім змінив налаштування Skype для запуску на порту 8080. (Не обов’язково для запуску IIS)
Умар Шафік

1
Це цікаво, коли продукти Microsoft б’ються ... поки вам не доведеться продовжувати перезавантажувати комп’ютер, коли зрозумієте, що це сталося знову з якоїсь невідомої причини і не маєте сил з’ясувати, що це спричиняє (дотепер). Серйозно, так дуже дратує.
andyface

10
Ось трохи простіший спосіб це зробити. Відображати тільки ті елементи , які прослуховує порт 80: netstat -aon | findstr 0.0:80. І тоді за умови , що повертає PID 123, виконайте наступні дії, щоб побачити , який процес , який: tasklist /FI "PID eq 123".
Микита Г.

1
Для мене це була OracleServiceXEслужба, яка з’їла порт 8080, до якого намагався прив’язати новий веб-сайт на моєму сервері IIIS.
RBT

35

Це відбувається тому, що інший процес використовує порт 80, це може бути програма чату на вашому ПК, як Skype.

Спочатку змініть порт веб-сайту за замовчуванням, який був 80, на якийсь невикористаний порт (наприклад, 8087). Щоб досягти цього, клацніть правою кнопкою миші на програмі, а потім натисніть "Редагувати прив'язку".

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

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

Після цієї зміни порту перезапустіть знову. Тепер ви можете визначити, який процес блокує порт IIS 80. Щоб перевірити це, використовуйте команду netstat, яка відображає деталі порту разом з ідентифікатором процесу.



те саме тут використовував порт 80. Вимкніть його в меню Параметри -> Додатково -> Підключення -> «Використовувати порти 80 і 442 для додаткових ...»
Вагнер да Сільва

25

Вийдіть зі Skype і повторіть спробу. У мене виникла та сама проблема, і я просто вийшов зі Skype, а потім скинув IIS. У мене це спрацювало.


2
Ви можете змінити порт, який використовує Skype, у налаштуваннях
3ventic

10

Ви також можете запустити цю команду, щоб з’ясувати, яка програма чи служба використовує порт, а потім відстежити її в диспетчері завдань (за умови, що це не служба агента веб-розгортання).

netstat -o -n -a | findstr 0,0: 80

Потім відкрийте диспетчер завдань, перейдіть до «Процеси», поставте прапорець «Показати процеси для всіх користувачів», а потім клацніть меню Перегляд і перейдіть до Стовпців, додайте стовпець PID.

Зіставте ідентифікатор процесу з команди netstat до PID в диспетчері завдань, і ви знайдете службу або програму, яка використовує порт.


2
У разі , якщо ви хочете , щоб уникнути відкриття менеджер завдань, виконайте наступну команду відразу після щоб побачити , який процес , який: tasklist /FI "PID eq <PID from netstat (without brackets)>".
Микита Г.

2

Як вже говорили інші, щось інше може використовувати порт 80 або 443. Для мене це був сервер VMWare Workstation Server, але перевірте інші відповіді, як використовувати netstat.


+1 за згадку порту 443. Я використовував netstatдля перевірки порту 80 і нічого не показував. Потім ви згадали порт 443 і ось він.
jtate

1

Я думаю, що це посилання дає досить гарне пояснення та вирішення цієї проблеми http://support.microsoft.com/KB/890015

Більшу частину часу; це викликано однією з двох причин: 1) порт 80 використовується чимось іншим, і, як пропонують інші, ви можете скористатися netstat -o -n -a | findstr 0.0: 80, щоб перевірити, чи це так. Якщо так, то вбийте процес із диспетчера завдань (поставте галочку показати процеси від усіх користувачів)

2) якщо порт 80 не використовується, другою причиною є потенційно недійсна ip-адреса в ListenOnlyList, поданій у розділі реєстру HTTP-> Параметри. Якщо ви переходите за посиланням для встановлення ключа вручну, або фактично ви можете використовувати (xp та сервер 2003) httpcfg delete iplisten -i ipaddressдля видалення недійсної ip-адреси. Ви повинні перезапустити http після редагування ipaddress!


@bummi дякую за коментар. Зараз я додав трохи більше деталей.
stt106

0

У моєму випадку це була " Служба синхронізації спільного доступу " (SyncShareSvc), яка працювала і використовувала порт 80. Однак Netstat показав 80 як безкоштовний. Я міг би зробити так, щоб сайт працював на іншому порту, але не на 80. Якби я додав ім’я хосту, IIS дозволив би мені запустити сайт, але під час перегляду на localhost (або будь-яке ім’я хосту, яке я додано). У службі IIS було ввімкнено лише анонімне та авторизацію форм ...

Я також виявив, що після зупинки IIS http://localhostвсе ще підказував мені перевірку автентичності Digest.

Рішенням - у моєму випадку - було видалити служби файлів та зберігання> Файли та служби iSCSI> " Робочі папки " із встановлених служб (потрібно перезапустити).

Після видалення служби "Робочі папки" та перезапуску IIS працював належним чином.


0

У моєму випадку після встановлення веб-доступу RD оригінальні веб-сайти за замовчуванням не вдалося запустити. Видалено роль веб-доступу RD, як і раніше. Видалене прив'язування порту 443 вирішило проблему.


0

Більшість випадків, коли це трапляється веб-розробниками, є причиною apache, тому, якщо ви перейдете до конфігураційного файлу з apache! відкрийте його та виконайте пошук за допомогою ctrl + f на 80 і змініть ip, який ви побачите, на 8080 і речення внизу на 80 на 8080, і вам потрібно довіритись, що у вас xampp або програма, яку ви використовуєте в даний час

Сподіваюся, я допоможу вам, хлопці


Питання стосується IIS, а не Apache.
C. Helling

1
Так, але ці 2 програми заважають одна одній, тому, можливо, я допоможу комусь, у кого така ж проблема, як і у мене
Арне Шутен,

0

Щоб отримати більш значущу інформацію, одним із способів є також отримати інформацію про право власності при видачі, netstatщоб ви знали процес, який використовує або 80 (прив'язка за замовчуванням http), або 443 (якщо визначено прив'язку https):

 netstat -ab

У моєму випадку винним було vmware:

TCP 0.0.0.0:443 Ім'я комп'ютера: 0 СЛУХАННЯ
[vmware-hostd.exe]

netstat можна знайти у пошуку для пошуку портів 80 або 443 (наприклад find ":443"), але саме це активне з'єднання буде показано на початку списку, оскільки їх легко побачити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.