Я попытался запустить свой веб-сервис через визуальную студию. Я столкнулся с такой проблемой:
---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.
Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)
---------------------------
OK
---------------------------
Я увидел диспетчер задач и обнаружил, что PID 4 используется системой, а его описание: NT Kernel & System.
Итак, я попытался остановить расширение http service
. Все службы зависимостей остановлены. Но я столкнулся с проблемой остановки службы http, например
The service is starting or stopping. Please try again later.
Итак, я попытался остановить и запустить службу вручную. Но процесс завершения отключен. Было бы полезно, если бы кто-нибудь мог помочь с этой проблемой
Ответы:
С https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/
Код ошибки
0x80070020
означаетERROR_SHARING_VIOLATION
, что в случае IIS Express (или IIS) означает, что порт, который он пытается прослушивать, используется другим процессом.Используйте
netstat
команду, чтобы узнать, какое приложение использует порт.a
Параметр говорит NetStat , чтобы отобразить все соединения и порты прослушивания.o
Параметр говорит NetStat , чтобы отобразить идентификатор процесса , связанный с соединением.Выполнение указанной выше команды netstat приведет к выводу, например:
Последнее отображаемое число (здесь 9544) - это идентификатор процесса.
источник
TASKKILL /PID 2756 /F
замены2756
с идентификатором процесса-n
переключателя - он использует «числовой» вывод, что означает, что он не тратит время на запросы DNS для преобразования IP-адресов в имена хостов.У меня возникла аналогичная проблема при попытке запустить проект из Visual Studio 2019 в Windows 10. Приложение не могло запуститься, поскольку порт явно использовался другим процессом. Однако
netstat
команда показала, что порт не используется ни одним приложением.Проведя 2 дня в Google, я нашел решение, которое помогло мне. Порт, который я пытался использовать, находился в диапазоне исключенных портов, который вы можете увидеть, выполнив команду:
В моем случае эти порты зарезервированы виновниками Docker для Windows и Hyper-V.
Решение
Я удалил Docker (так как он мне не нужен) и отключил Hyper-V. Чтобы отключить Hyper-V: перейдите в: Панель управления-> Программы и компоненты-> Включение или отключение компонентов Windows. Снимите флажок Hyper-V и перезагрузите компьютер.
После перезапуска команда не
netsh interface ipv4 show excludedportrange protocol=tcp
показала зарезервированных портов.Затем я добавил порт для своего приложения в исключенный диапазон портов, выполнив следующую команду из командной строки с повышенными привилегиями:
Затем я снова включил Hyper-V (Docker можно переустановить при необходимости) и снова перезагрузил компьютер.
Hyper-V теперь зарезервировал свои порты без вмешательства в порт, используемый моим приложением: зарезервированные диапазоны портов.
источник
У меня такая же проблема. Я только что перезапустил Visual Studio, и все заработало.
источник
Я была такая же проблема. Как упоминает @Kautsky Lozano выше, другое приложение использует этот порт.
Итак [для ОС Windows] просто:
источник
Я столкнулся с той же проблемой после того, как мы обновили решение с Visual Studio 2012 до 2015 года. Я пришел сюда и побежал
netstat
только для того, чтобы обнаружить, что ни одно другое приложение не использует те же порты. Оказывается, у меня были одни и те же сайты с одинаковыми портами, отображенными вapplicationhost.config
atUsers/<username>/Documents/IISExpress/config
иapplicationhost.config
в.vs
папке внутри моего решения. Следует отметить, что проблема возникла не сразу после обновления. Однажды утром он просто начал систематически давать сбой. Пара перезагрузок тоже не решила проблему.Удаление конфликтующих сайтов из одного, хранящегося в моих документах, и перезапуск Visual Studio решили проблему.
источник
applicationhost.config
находится в.vs\config
папке в папке с вашим решением.Если netstat не показывает ничего, что уже использует порт
netstat -ano | findstr <your port number>
Порт может быть исключен, попробуйте эту команду, чтобы увидеть, не заблокирован ли диапазон чем-то еще:
netsh interface ipv4 show excludedportrange protocol=tcp
Вы можете попытаться разблокировать диапазон от начального порта для ряда портов (требуется командная строка с администратором):
netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>
Что касается меня, я не мог их разблокировать, я просто получил сообщение «Доступ запрещен», поэтому мне пришлось выбрать другой порт для своего сайта.
источник
Другое приложение использует этот порт. Это может вам помочь
источник
У меня была эта проблема, хотя netstat не показывал никаких конфликтов.
Следующее исправило это для меня:
источник
После обновления Windows 10 и / или Visual Studio 16+ из-за внутренней ошибки IISExpress может не зарегистрировать какой-либо веб-сайт разработки, поскольку он больше не принимает
localhost
подключения.Чтобы решить проблему, вам просто нужно снова зарегистрировать привязку. Для этого запустите из административной оболочки следующую команду:
источник
У меня возникла эта проблема при обновлении проекта MVC . Я скопировал новый MVC .csproj поверх моего существующего .csproj файла, а затем вернулся к полностью рабочему проекту. Что я не учел, так это существующий номер порта в старом .csproj. У нового проекта был новый номер порта, но общее имя проекта / сборки. Этого было достаточно, чтобы IIS Express потерял рассудок и выбросил это исключение.
Достаточно просто извлечь старый номер порта из git и изменить URL-адрес IIS Express, чтобы включить его в настройки проекта, чтобы исправить это.
источник
Самый простой способ сделать это, не заходя в командную консоль, - просто закрыть все приложения (включая VS), затем запустить VS самостоятельно и повторить попытку. Вероятно, конфликт вызывает другое приложение, например ваш браузер. В моем случае это вызвало Chrome и было решено при выключении всего и перезапуске VS. Я снова открыл Chrome, и все было хорошо.
Приведенный выше материал netstat полезен, но для меня это только в том случае, если вы не можете сделать то, что я предлагаю.
источник
Обобщить все ответы. Есть 2 решения. Оба работали на меня. - Решение №1. Убейте приложение, использующее тот же порт. - Решение №2 Настройте IIS Express на использование другого порта для вашего проекта.
Решение №1 (предположим, что порт в сообщении об ошибке был 443) Выполните в командной строке:
он возвращает:
TCP 0.0.0.0:443 pe01:0 LISTENING 2904
последнее число (спасибо @ chris-schiffhauer) - это PID, который нужно убить. Перейдите в Диспетчер задач -> Процессы -> [Показать процессы от всех пользователей], завершите процесс с PID = 2904. В моем случае это был хост VmWare.Решение №2 (Предположим, сообщение было: Не удалось зарегистрировать URL-адрес « http: // localhost: 433 / » для сайта «MyProject.Website0» ... ). Откройте следующий файл в Notepad ++:
C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config
найдите в нем строку, содержащую:Либо поменяйте
433
на что-то другое, например,4330
или удалите конфликтующий<binding.../>
тег.источник
В моем случае помогло следующее:
Когда я перезапустил Visual Studio, он присвоил проекту совершенно новый номер порта и отлично работал.
источник
Номера портов не совпадают
В моем случае проблема была в моих тегах привязки, найденных в файле конфигурации в .vs в папке моего решения, номера портов не совпадали. Привязки были следующие
И в моих настройках URL был установлен как
http://localhost:1943/
Итак, я удалил внутреннюю привязку и запустил свое веб-приложение, затем он сгенерировал новую привязку с другим номером, затем я скопировал новый сгенерированный порт в свои настройки, после чего ошибка исчезла.
источник
Перейдите в Свойства веб-проекта >> Интернет >> URL- адрес проекта >> Изменить порт, например: http: // localhost: 22345 / => http: // localhost: 22346 / Надеюсь на эту помощь!
источник
Мне удалось решить эту проблему, удалив все от тегов
<site>
до</site>
вUsers/<username>/Documents/IISExpress/config/applicatiohost.config
файлисточник
Потратив полдня на решение этой же проблемы, я почувствовал, что должен добавить решение, которое в конечном итоге сработало для меня.
TL; DR Если
netstat
указывает, что проблемный элемент не используется, все же попробуйте несколько других из совершенно другого диапазонаЯ сталкивался с этой проблемой раньше, но обычно перезапуск Visual Studio, смена портов (увеличение на 1) или перезагрузка делают свое дело. Однако в этом случае ничего из этого не помогло, и
netstat
не было обнаружено противоречивого процесса. Я даже переустановил IIS и Visual Studio и удалил несколько других программ, которые, как я подозревал, могли мешать. Казалось, что IIS пытался запустить несколько экземпляров одного и того же сайта.В конце концов я попробовал бегать
netstat
без негоfindstr
. Я визуально просмотрел список активных портов и заметил, что, хотя те, которые я пробовал, не указаны в списке, было несколько процессов, использующих порты из аналогичного диапазона. Поэтому вместо этого я поискал свободный диапазон, выбрал номер порта и, похоже, теперь работает.Я хотел бы услышать, может ли кто-нибудь объяснить, почему это могло сработать?
источник
Сегодня я столкнулся с этой проблемой в Visual Studio 2019 и потратил 3 часа, прежде чем окончательно разобраться в проблеме. Visual Studio использует 2 файла для отслеживания номера порта SSL, поэтому вам нужно исправить оба, и вы должны исправить оба, пока Visual Studio закрыта. Эти два файла - это файл applicationhost.config, который находится в папке .vs \ ??? \ config вашего решения; а также папку .csproj.user вашего веб-проекта. Отредактируйте оба файла и удалите конфиги. Может даже просто удалить оба файла. Затем повторно откройте приложение в Visual Studio. Удачи!
источник
У меня это сработало.
источник
Я выполнил инструкции @Zoti и использовал Resource Monitor, чтобы найти нужный порт.
Оказывается, Outlook был случайным образом назначен порт для канала связи. С точки зрения морали, это может быть что угодно.
источник
Причина этой ошибки в том, что вы указываете неправильный номер порта своему приложению.
используйте порт рядом с номером 8080, то есть:
чтобы изменить порт для вашего приложения в Visual-Studio
источник
Я уже пробовал следующее:
Я тоже пробовал использовать это, но нулевые результаты.
netstat -aon | найти ": 80"
Я тоже пробовал использовать, но тоже возвращал нулевые результаты.
netstat -ao | findstr
Я удалил этот « Microsoft.VsHub.Server.HttpHostx64.exe », после чего мой проект успешно запустился и запустился в браузере. Ошибка исправлена. Я не уверен, почему, но это работает.
Вот скриншот:
источник
У меня была та же проблема, но она разрешилась, когда я перезапустился с правами администратора. (Возможно, это был только перезапуск)
источник
Сегодня у меня была такая же проблема, и я ничего не нашел в Интернете. Я много лет использую порт 2057, но вдруг он перестал работать. Изменение его на другое меньшее число, например 2058, дало такое же сообщение об ошибке, но когда я изменил его на 20057, все снова заработало. Возможно, что-то изменилось в том, как обрабатываются младшие номера портов.
источник
IIS Express не запускает решение в Visual Studio
источник