Невозможно подключиться к веб-серверу IIS Express

Я использую предварительную версию Microsoft Visual Studio 2019 Community Preview 1.0 версии 16.4.0. Я просто обновил ОС Windows 10 Pro версии 1903, сборка 18362.418. В проекте веб-приложения ASP.NET Core 3 (сервер Blazor), когда я нажимаю F5, я обнаруживаю ошибку

Я могу перейти на https://localhost:44333/ вручную, но это неудобно. Когда я прекращаю отладку, я также выключаю ее вручную на панели задач.

С другим проектом веб-приложения проблем не возникает.

Когда я выбираю или не выбираю вариант Enable native code debugging, не успех.

Как это исправить?


person Do Nhu Vy    schedule 11.10.2019    source источник
comment
Вы просто хотите приобщиться к процессу? Затем возможный дубликат stackoverflow.com/a/49297776/1260204 (.. вам нужно будет подключить процесс dotnet.exe в Visual Studio)   -  person Igor    schedule 11.10.2019
comment
Отвечает ли это на ваш вопрос? Невозможно запустить веб-сервер IIS Express   -  person Michael Freidgeim    schedule 15.07.2021


Ответы (13)


Включение / отключение SSL

Это простое решение. Для меня переключение параметра «Включить SSL» на вкладке «Отладка» проекта внутри Visual Studio (просто измените его на значение, противоположное текущему значению и запустите проект) устранило проблему.

Насколько я понимаю, это может сработать по двум причинам. Сначала он заставляет Visual Studio обновить конфигурацию Applicationhost (подробнее об этом позже). Во-вторых, иногда привязан SSL-адрес. Поэтому отключение SSL снимает проблему.

Конфигурация хоста приложения

Откройте ваш $(solutionDir)\.vs\config\applicationhost.config файл и убедитесь, что ваш сайт выглядит так:

<site name="[YOUR PROJECT NAME]" id="3">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="//PATH/TO/YOUR PROJECT" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation="*:[YOUR_PORT]:localhost" />
    <binding protocol="https" bindingInformation="*:[YOUR_SSL_PORT]:localhost" />
  </bindings>
</site>

Убедитесь, что для iplisten установлено значение 0.0.0.0

Если список прослушивания IP-адресов не настроен, эта проблема может возникнуть (осторожно, я понятия не имею, почему).

Проверьте netsh, чтобы убедиться, что есть запись для 0.0.0.0

PS C:\Windows\system32> netsh http show iplisten

IP addresses present in the IP listen list:
-------------------------------------------

::     
0.0.0.0

PS C:\Windows\system32>

Добавьте правильное правило netsh, если оно не существует. Для этого вам понадобится admin cmd.exe или admin PowerShell.

PS C:\Windows\system32> netsh http add iplisten ipaddress=0.0.0.0

Убедитесь, что ничто не связано с используемым вами адресом

Мне кажется, это проблема с Blazor. Если адрес привязан к адресу, который Blazor пытается использовать, это может вызвать проблемы. Снова используйте netsh, чтобы проверить, что используется.

netsh http show urlacl

Запись, которая выглядит так

Reserved URL            : http://*:50902/
    User: \Everyone
    Listen: Yes
    Delegate: No
    SDDL: D:(A;;GX;;;WD)

Можно удалить с помощью этой команды

netsh http del urlacl url=http://*:50902/
person Joshcodes    schedule 06.12.2019
comment
Спасибо, я недавно обновился до Win 10 Pro, и именно тогда стало появляться сообщение «Невозможно подключиться к веб-серверу IIS Express». Запуск netsh http add iplisten ipaddress=0.0.0.0 решил эту проблему для меня. - person Tomáš; 01.04.2020
comment
Потратил 5 часов на это, эта одна строка сделала это для меня netsh http add iplisten ipaddress = 0.0.0.0. Спасибо - person C.Ikongo; 13.12.2020
comment
Отключение SSL исправило это для меня. Спасибо! - person Karel Křesťan; 24.02.2021
comment
$ netsh int ipv4 show dynamicport tcp, На моей машине, которая начинается с порта 49152. Поэтому убедитесь, что в вашем проекте не используются порты с номером выше этого. - person Jeremy Lakeman; 26.02.2021
comment
Циклическое включение SSL сработало для меня. Спасибо! - person SuperJMN; 09.03.2021

У меня была та же проблема, что описал OP, я имею в виду, что получил сообщение об ошибке, но, проверяя значок IIS Express, было показано, что все в порядке, поэтому ручной переход по URL-адресу работал.

Пробовал буквально все, что описано выше, в том числе

  • Остановить сайт в IIS Express
  • Остановить IIS Express
  • Выйти VS перезапустить VS
  • Проверить все в папке .vs
  • Удалите папку .vs
  • поскольку POC создал новый проект ASP.NET Core, который работал правильно

Ничего не помогло.

Я знаю, что это "решение" смешно, но, потратив на это полчаса, я наконец перезапустил свою машину, и с тех пор все работает ... Стоит попробовать

person g.pickardou    schedule 10.05.2020
comment
Перезапуск работает, но проблема в том, что эта ошибка иногда возникает сразу после перезапуска. Это странно, для меня это часто случается в одних решениях, но не в других. - person Trinidad; 27.06.2020
comment
пробовал много этих других решений ... единственное, что сработало, - это закрыть SLN, удалить папку .vs, снова открыть решение. - person Craig; 16.08.2020
comment
Закрытие решения, удаление папки .vs и повторное использование IIS Express помогло мне. - person Ev Conrad; 12.11.2020
comment
Этот сработал для меня. - person Michael Washington; 12.12.2020
comment
Теперь это сработало для меня пару раз - person ActualRandy; 30.03.2021
comment
Спасибо, это сработало для меня - person Shehani Kalapuge; 22.06.2021

Думал, что добавлю то, что сработало для меня, даже если я опаздываю на вечеринку. Приведенные выше решения не помогли мне.

  1. Зашел в свойства проекта - ›Вкладка отладки
  2. Изменил номер порта в AppURL на x + 1, т.е. для моего экземпляра http: // localhost: 44348 = ›http: // localhost: 44349
  3. Закрыл решение
  4. Удалил конфиг applicationhost
  5. Повторно открытое решение.
  6. Изменил номер порта обратно на исходный

Вуаля

person broguyman    schedule 07.04.2020
comment
Спасибо, это устранило мою проблему! - person Christopher Haws; 21.08.2020

В прошлом у меня иногда возникала эта проблема. Часто я могу решить проблему следующим образом:

  1. Нажмите на отображение скрытой области значков на панели задач. Вы увидите значок IIS Express.
  2. Выберите значок, и вы должны увидеть свой веб-сайт в списке. Откройте это меню и нажмите «Остановить сайт».

В других случаях у меня было программное обеспечение корпоративной безопасности, мешающее работе Visual Studio / IIS Express. Обычно проблему можно обойти, запустив Visual Studio от имени администратора. Я пытался объяснить охранникам, что это за ужасная идея, но обычно они не понимают.

Наконец, если вы используете приложение Asp.Net Core, вы можете просто отказаться от IIS Express. Если вы посмотрите рядом с кнопкой воспроизведения, вы увидите выпадающий список с надписью «IIS Express». Если вы откроете список, вы увидите там название вашего приложения. Выберите тот. Вы будете использовать пустельгу вместо IIS Express.

person GlennSills    schedule 12.10.2019
comment
Стоп сайт у меня работал. Единственное незначительное изменение к номеру 2 выше - это то, что вы щелкаете правой кнопкой мыши значок, чтобы увидеть свой сайт. - person Mifo; 03.09.2020

У меня была такая же проблема, я смог решить ее, изменив номер порта.

  1. Щелкните правой кнопкой мыши проект и выберите свойства.
  2. Перейдите в раздел отладки
  3. В настройках веб-сервера измените порт URL-адреса приложения [просто увеличьте на единицу]
person Bipin Kumar    schedule 12.10.2019
comment
Чтобы пролить свет на то, почему это может работать, потому что это вызывает регенерацию .vs \ PROJECTNAME \ config \ applicationhost.config. - person Trinidad; 27.06.2020
comment
вы можете использовать это для проверки доступности порта, так как просто увеличение на 1 может не работать. netsh interface ipv4 show excludedportrange tcp и можете удалить их вот так (иногда) netsh interface ipv4 delete excludedportrange tcp 4990 100 - person LucidObscurity; 18.02.2021

У меня ничего не сработало (включая удаление .vs, удаление obj и bin, очистку проектов, перезапуск VS Studio, запуск netstat -ao | findstr <port number>, чтобы узнать, кто использует мой порт, и т. д.) . Ничего такого.

Ничего кроме этого:

  1. Откройте PowerShell от имени администратора
  2. Запустите Get-Process -Id (Get-NetTCPConnection -LocalPort MY-PORT-NUMBER).OwningProcess (измените номер порта на свой номер порта)
  3. Наконец, в моем случае это показало, что этот процесс: service host: windows push notifications system service использует мой порт. Обратите внимание на ID этого процесса и ..
  4. Перейдите в диспетчер задач (подробнее) ›Процессы› найдите процесс по этому ID и завершите дочерний процесс (потому что сам этот родительский процесс не может быть уничтожен без того, чтобы система стала непригодной для использования)

Вот и все. В моем случае это было windows push notifications system service. Как только я нашел и убил - все работает без перезагрузки всего компьютера или изменения номера порта.

person Ivan Sivak    schedule 01.02.2021

Я решил эту проблему, закрыв Visual Studio (2019) и запустив его обратно, работая как администратор.

person Alex    schedule 28.07.2020

Для меня у меня было другое приложение, использующее тот же порт, я изменил порт в настройках отладки проекта на что-то другое.

person stuartdotnet    schedule 11.09.2020
comment
По моему опыту, это ответ в 100% случаев. Я не знаю, почему какой-то порт глючит, но смена портов всегда решала эту проблему для меня. - person Bennyboy1973; 09.03.2021

Изменение URL-адреса приложения (щелкнув правой кнопкой мыши решение - ›свойства -› отладка - ›URL-адрес приложения) с http: // localhost: 59017 на http: // localhost: 5901 (последний номер 7 удален ) работал у меня. введите описание изображения здесь

person M Fuat    schedule 28.01.2021

Другой вариант, который я предпочитаю, потому что не нужно тратить время на борьбу с IISExpress, - это запустить ваш профиль запуска проекта, а не IISExpress.

Blazor - это приложение .NET Core, поэтому вы можете отлаживать его с помощью Kestrel.

person Crowcoder    schedule 15.05.2020
comment
Это нарушает функцию автоматической перезагрузки, которую вы получаете с IIS Express, и не отвечает на вопрос OP. - person Christopher Haws; 21.08.2020
comment
@ChristopherHaws Я не уверен, о каком методе горячей перезагрузки Blazor вы говорите, но запуск в качестве консольного приложения абсолютно не нарушает этого. Кроме того, вполне допустимо, чтобы ответы были полезными, они не обязательно должны быть ответом. Спасибо за ваше мнение, но IIS Express - мусор, и я не собираюсь его использовать, и я прекрасно обхожусь без него. - person Crowcoder; 22.08.2020
comment
@ChristopherHaws Я только что провел небольшое исследование и тестирование. IIS Express хуже других решений для перезагрузки Blazor, потому что вы не можете использовать его во время отладки. - person Crowcoder; 22.08.2020
comment
Не уверен, о чем вы говорите, я каждый день использую IIS Express для отладки. Кроме того, я не сказал о горячей перезагрузке, это функция, над которой работает команда ASP.NET. На данный момент есть два варианта автоматической перезагрузки при внесении изменений. 1) Используйте IIS Express (который автоматически перезагружается, когда в код вносятся изменения без отладки) или 2) Используйте dotnet run watch (что в .NET 5 дает аналогичный опыт с IIS Express). Что касается использования dotnet run (о чем идет речь в этом ответе), это не позволяет сайту автоматически перезагружаться. - person Christopher Haws; 17.09.2020
comment
@ChristopherHaws - лучшее, когда люди говорят мне то, что я уже знаю. Спасибо. Мой ответ полезен для людей, имеющих такой опыт, это альтернатива. Я все время знал, что это не ответ, но по крайней мере один человек нашел его достаточно полезным, чтобы проголосовать за него, так что это добавляет ценности сообществу. Я не могу сосчитать, сколько раз IISExpress терял рассудок, зачем с этим бороться, если в этом нет необходимости? - person Crowcoder; 17.09.2020
comment
Чтобы исправить что-то, что не работает, не используйте что-то другое. Решение, предоставленное @broguyman, фактически устраняет проблему, поднятую вопросом OP. - person Christopher Haws; 17.09.2020

Удаление папки .vs решит эту проблему.

  1. Перейти к месту приложения
  2. Удалить папку .vs (скрытая папка)
  3. Начни проект снова!
person Biju Maharjan    schedule 26.02.2021

Я была такая же проблема. Я был подключен к VPN моей организации. Я просто отключил VPN, перезапустил IIS и повторил попытку. Теперь он отлично работает,

person Purushottam.Prasad    schedule 08.03.2021

У меня была точно такая же проблема с IIS Express, которая, казалось бы, возникла из ниоткуда. Мое решение заключалось в том, чтобы просто открыть диспетчер IIS и перезапустить IIS (на правой панели в разделе «Действия -› Управление сервером »). В результате сразу же возобновил работу start-up проекта.

person Mike Osipov    schedule 17.04.2021