ASP.NET 5 MVC: невозможно подключиться к веб-серверу «IIS Express»


190

Что я делаю:

Удаление applicationhost.config, расположенное в Documents\IISExpress\config, не меняет сообщение об ошибке. (Там также есть IISExpressпапка в program filesи program files (x86).)

Что-то я заметил, и я не знаю, если это проблема:

Ссылочный файл 'lib / jquery-validation / jquery.validate.js' не найден.

У меня есть свалка с rawcap, но я не замечаю там много. Некоторые из того, что было там:

"Framework": {"FrameworkName": "DNXCore, Version = v5.0", "FriendlyName": "DNX Core 5.0", "ShortName": "dnxcore50", "RedistListPath": null}

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

Подробнее об этой проблеме: ошибка 800700c1 из / trace: error

Я пробовал:

  • удаление applicationhost.config (и изменение номера порта)
  • Запуск Visual Studio в качестве администратора
  • удаление папки IISExpress в Documents (изменяет сообщение об ошибке, пока папка не будет переустановлена)
  • выключение и включение ssl, копирование URL в окно запуска. (примечание: я не использую ssl)
  • очистка всех ошибок sfc / scannow
  • запуск iisexpress с версией x86 и 64-битной версией

1
Это помогает? stackoverflow.com/questions/15873126/… . Или смена порта? stackoverflow.com/questions/23502327/…
mariocatch

1
попробуйте при открытии visual studio щелкнуть правой кнопкой мыши и открыть как администратор ..
Хазем Тораб

Я пробую все предложения, которые мне дают люди, даже если я пробовал раньше.
Сарек

Можете ли вы открыть новый проект и проверить, работает ли он? Перезагрузить компьютер? Переместить проект в другой каталог
Себастьян 506563

1
Спасибо, но это тоже не сработало.
Сарек

Ответы:


254

После установки обновления 2 для Visual Studio 2015 я начал получать ту же ошибку. Я попробовал все выше без удачи. Тем не менее, я нашел решение, которое работает для меня:

  1. Удалите файл YourSolutionFolder \ .vs \ config \ applicationhost.config (примечание: .vs - это скрытая папка)
  2. Откройте Visual Studio, щелкните правой кнопкой мыши веб-сайт> Свойства> вкладка Отладка> Настройки веб-сервера> URL-адрес приложения - измените номер порта.

Человек, моя ошибка вернулась, нашел это также на другом сайте, но он просто продолжает выдавать эту проклятую ошибку. Разозлить меня. Я бы запустил веб-консоль, но у нее нет наблюдателя, так что я могу просто обновить ctrl + s.
Рене Сакерс

OMG, это работает. Я удалил папку IISExpress в моих документах, затем удалил этот файл, затем я начал получать эту ошибку, но был принят ответ: stackoverflow.com/questions/33166403/… и теперь он работает: |
Рене Сакерс

3
Для меня это было.vs\config\<MyProject>\config\applicationhost.config
laggingreflex

2
где вы видите, web siteчто вам нужно щелкнуть правой кнопкой мыши?
CodyBugstein

14
Для проекта Net Core 2.2 - После ОГРОМНОЙ борьбы и попыток всего: от удаления папки .vs, удаления конфигураций IIS Express, изменения номеров портов, изменения привязок и до запуска VS от имени администратора, Я ПОЛНОСТЬЮ исправил проблему, закрыв 1. Закрытие VS, 2. Удаление launchSettings.json3. открытие VS, который заново сгенерирован launchSettings.json. Не было очевидно, что файл был поврежден или неправильный, или даже когда он изменился, чтобы вызвать сбой.
Куинтон Смит,

189

Выйдите из VS и удалите файл (project) .vs \ applicationhost.config. Перезагрузите VS. Это должно начать работать.


19
Это работало для меня в VS2017, без необходимости менять порт.
Млинау

4
После этого мне понадобилось запустить Visual Studio от имени администратора, и сработало, спасибо!
DigaoParceiro

5
Особенно для меня важно RUN AS ADMINISTRATOR. (хотя у меня Asp.net Core 2.0 VS2017.
Барт Менсфорт

1
Удалил всю .vsпапку и у меня сработало, только что
FindOutIslamNow

9
Перезапуск VS2017 не помог, но перезагрузка компьютера исправила это для меня. Не нужно было менять порт или удалять папку. Надеюсь, что это помогает другим.
Тонмой

32

Попробуйте использовать другой порт. Я только что создал новый проект Core 1.0 RC1 и получил ту же ошибку.

  • Щелкните правой кнопкой мыши веб-проект
  • Вкладка отладки
  • Выключите и снова включите SSL, он должен генерировать новый случайный порт
  • Скопируйте URL-адрес SSL и вставьте его в поле «Запустить URL».
  • Запустить проект

Работал на меня (ТМ).

Ответ от: https://stackoverflow.com/a/28650554/134761

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


1
Это работало, но только когда я использовал порт 60000. Порт 6000 вернул ошибку: небезопасный порт.
EKanadily

Не работал в Visual Studio 2019 - он просто использовал один и тот же порт каждый раз.
EJoshuaS - Восстановить Монику

@ EJoshuaS-ReinstateMonica Я считаю, что это сильно изменилось. Посмотрите, как Startupнастроен ваш класс и какие у appsettings.jsonвас есть файлы. Также есть Properties\launchSettings.jsonвозможность запускать разные профили локально. docs.microsoft.com/en-us/aspnet/core/fundamentals/... dejanstojanovic.net/aspnet/2018/december/...
angularsen

27

Я столкнулся с этой проблемой в .net core 2.0 при обновлении номера порта моего проекта.

Мне удалось разобраться в проблеме в два этапа:

  • ШАГ 1: УДАЛИТЬ папку .vs, которая скрыта внутри основной папки решения. (перед этим закройте Visual Studio), затем при повторном запуске Visual Studio эта папка и файл (applicationhost.config) внутри него будут автоматически созданы Visual Studio.
  • ШАГ 2: Если у вас есть несколько проектов запуска , если вы все еще сталкиваетесь с проблемой, то один за другим запустите проект как запуск, а затем запустите как несколько проектов запуска.

Решение сработало. Спасибо :) Как насчет удаления папки .git?
krunal.cp

24

У меня была эта проблема на .net Core 2.1, Visual Studio версии 15.9.6. Когда я удалил папку .vs, я снова открыл Visual Studio, и проблема все еще была. Решение, которое работает для меня ниже:

  1. Удалить папку .vs (это скрытая папка).
  2. Перезагрузить компьютер.

Другие решения:

  • Закройте Visual Studio, удалите папки bin и obj из папки проекта. Откройте Project, затем перестройте решение.
  • Попробуйте запустить Visual Studio от имени администратора.
  • Чистое решение, а затем восстановить
  • 1) Чистый раствор. 2) Выход из Visual Studio. 3) удалить папку .vs 4) повторно открыть Visual Studio

Я смог сделать это, выключив только Visual Studio, удалив папку .vs, снова заявив Visual Studio.
Роберт Браттон

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

2
Получил это после синего экрана. Пришлось удалить папку .vs и перезагрузить компьютер . Перезапуска визуальной студии было недостаточно.
Джон

2
Мои шаги были сжаты до: 1) Чистого раствора. 2) Выход из Visual Studio. 3) удалить папку
.vs

1
@samneric Спасибо за это, я добавлю вам решение к ответу :)
Daniaal

13

Запустите VisualStudio с правами администратора и запустите проект. Затем закройте VisualStudio и все ошибки и снова запустите VisualStudio с обычным пользователем.

Это сделало это для меня.

Похоже, что IIS должен что-то записать в некоторые конфигурации с правами администратора (порт 80 не работал с обычным пользователем, но порт 6767 работал нормально).


5
Только разрешения администратора позволяют приложению связываться с номером порта, меньшим 1024. Вот почему 6767 работает для вас.
Лекс Ли

12

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

  1. Щелкните правой кнопкой мыши по проекту и выберите свойства

  2. Перейти в раздел отладки

  3. В разделе «Настройки веб-сервера» измените порт URL приложения [просто увеличьте на один :)]

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


10

В моем случае это было какое-то другое приложение, прослушивающее тот же порт, к которому IIS Express пытался подключиться. Я должен бежать, netstat -aoчтобы увидеть PID процесса, который использует тот же порт и завершение работы приложения. В моем случае приложение было Viber.


10

Решение, которое сработало для меня, заключалось в следующем: закрыть проект VS В проводнике файлов перейдите к проекту и удалите всю папку «.vs». Перезапустите проект. Запустите «Отладка». Работает, очевидно, это как-то связано с «applicationhost». .config "файл.

Наслаждайтесь!


10

Многие из них ответили не полностью решить проблему под рукой. Реальная проблема для меня заключалась в том, что у меня было две привязки, использующие один и тот же порт в моем файле applicationhost.config, и я не открыл порт для моей второй (не локальной) привязки . VS позволит вам по-прежнему работать в этих условиях, но только если вы находитесь в режиме администратора (отсюда и все ответы выше).

По сути, вы создаете два экземпляра IIS Express вашего приложения на одном и том же порту, поэтому изменение одного из портов в файле applicationhost.config позволит вам продолжить. Однако есть два разных файла applicationhost.config. Вы захотите выбрать тот, который имеет IP-адрес привязки и порт, который вы видите в свойствах вашего проекта

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

Перейдите в папку, где вы можете увидеть свое решение проекта и папки проекта (показать скрытые элементы в проводнике). Перейдите в скрытую папку .vs -> папка «YourAppName» -> config. Он должен содержать информацию о привязке, которую вы видели в свойствах вашего проекта.

Пример:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

Измените один из этих номеров портов на что-то отличное от «7000», чтобы вы не пытались использовать один и тот же порт.

В моем случае я использую адрес 192, который не является адресом локального хоста, поэтому мне нужно использовать некоторые команды netsh, чтобы открыть этот порт и выполнить ip up. Вот ссылка, которая показывает, как открыть порты для IIS Express, чтобы разрешить удаленное подключение. Запуск от имени обычного пользователя не будет работать, если вы не запустите перечисленные команды netsh.

Вот команды netsh:

  1. netsh http add urlacl url = http://192.168.1.42:58938/ user = Everyone
  2. netsh advfirewall firewall добавить правило name = "IISExpressWeb" dir = в протоколе = tcp localport = 58938 profile = private remoteip = действие localsubnet = allow

Скопируйте эти команды и запустите их в cmd с привилегиями ADMIN и с вашим IP-адресом и номером порта.


Это было решением для меня, спасибо
WeisserHund

8

Я просто изменил свой профиль с «IIS Express» на «MyProjectName» (который, я думаю, использует kestrel в качестве http-сервера вместо IIS), и теперь он работает нормально:

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


Это не решение, а обходной путь. Ваш ответ предполагает использование другого сервера - Kestrel - в то время как OP явно пытается заставить IIS-Express работать.
Пролог

2
После трех дней выщипывания волос мне помогло это решение. Спасибо
Меир

7

УТОЧНИТЬ

На самом деле многие ответы здесь одинаковы и говорят что-то вроде «Перезапустите, и это снова волшебным образом работает».

Ну, 9 из 10 раз люди имеют эту проблему, как OP, потому что IP-адрес уже в использовании.

ОТВЕТ

Там может быть 2 IP-адреса, которые используются. Оба из них вы можете найти по:

1) Щелчок правой кнопкой мыши по стартовому проекту

2) Нажмите «Свойства»

3) Нажмите на вкладку «Отладка»

Здесь вы видите свой «URL приложения» и «SSL URL».

  • Если ваш «URL приложения» используется, просто измените его там и сохраните, и он должен снова заработать.

  • Если ваш «SSL URL» используется, закройте VS, удалите файл «applicationhost.config» в скрытой папке .vs вашего проекта и снова откройте VS.


6

Я смог переключить эту ошибку, изменив одну вещь. В моем launchSettings.jsonфайле проекта веб-приложения ASP.Net Core 1.0 RC2 :

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

в

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

Я перешел на https в попытке запустить проект с использованием этого протокола. Видимо, это не то место, где можно сделать это изменение. Я подозреваю, что это создает несколько привязок на одном порту, и IIS Express это не нравится.


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

6

У меня была такая же проблема, но я исправил ее, перейдя в applicationhost.config и удалив порт, который я не добавил (IIS Express, я бы предположил), который поместил мой конкретный порт на другой порт.

Вот что файл конфигурации имел для моих привязок:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Я удалил первый элемент привязок, так как единственный порт, который я хотел, был 44360. Мой конфигурационный файл теперь выглядит так:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Теперь я не вижу ошибку при отладке.

Я также заметил, что у моего второго API в моем проекте также был назначен порт 80, я также удалил его.


5

удалите папки bin и obj из папки проекта и перестройте.


Хотя ручная очистка часто помогает, она не решит проблему в этом случае, поскольку проблема находится в файле applicationhost.config и, скорее всего, вызвана попыткой использовать один и тот же IP-адрес дважды
MedievalCoder

5

Я просто очистил свое решение, затем перестроил его и, наконец, нажал F5, и это сработало! Так просто.


4

Я не буду притворяться, что полностью понимаю, какая ошибка MS создает эту проблему, но вот другое потенциальное решение:

В файле .vs / config / applicationHost.config найдите раздел для <system.applicationHost><applicationPools>. В пулах убедитесь, что managedRuntimeVersionзначение атрибута соответствует значению, указанному в конфигурации IIS для системы (и / или версии установленной платформы .NET).

Например, вы можете обнаружить (как я сделал), что сгенерированный файл имеет:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

В моем случае вы бы заменили это на:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Обратите внимание на замену с «v4.0» на «v4.0.30319». Это решило проблему.


Что, кажется, происходит:

Я считаю, что VS генерирует файл applicationHost.config с версиями по умолчанию для .NET Framework, которые могут не соответствовать конкретной версии, которая установлена ​​/ настроена в системе. Вы можете отладить / наблюдать эту проблему, отслеживая выполнение в Process Monitor и находя командную строку для iisexpress.exe. Выполнение этой команды с /trace:errorдобавленным приводит к более информативному сообщению об ошибке предварительной загрузки CLR с версией v4.0. Для остроумия:

Запуск IIS Express ...
Ошибка при попытке предварительно загрузить версию CLR v4.0. hr = 80131700
Не удалось инициализировать W3WP_HOST hr = 80131700
Выключение модели процесса, вызванное
невозможностью запуска iisexpress.


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


Ни одно из этих решений не сработало для меня. Если вы установили Windows IIS по умолчанию (которая поставляется с вашими окнами) и имеете доступ к ней, попробуйте использовать ее, что решило мою проблему, просто добавьте новый веб-сайт или новое приложение, и все готово, в любом случае странно, что IIS Express не может открыть страницу. Если вам нужно отследить его, просто подключите его к процессу, используя ctrl + alt + pкороткие клавиши, отметьте Show process for all usersи выберите w3wp.exe(иногда нужно обновить веб-сайт, чтобы найти w3wp.exe), а затем нажмите Attachкнопку.
Мухаммед Мусави

3

Попробуйте сначала, если он работал и вдруг остановился:

  • Закрыть Visual Studio
  • Убить процессы iisexpress.exe
  • Откройте Visual Studio

3

У меня происходит, как только я добавляю новую привязку в applicationhost.config, запуск от имени администратора решает проблему.



3

Для меня проблема была в том, что другой процесс использовал тот же порт. (В моем случае это был внешний вид, который использовал тот же порт, что и мой сайт, и поэтому мой сайт не мог запуститься)

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

Чтобы получить список того, какие приложения используют какой порт, откройте CMD и введите «netstat -aon». Вы получите список портов. Найдите порт, который должен использовать ваш сайт или который вы хотите использовать, и запишите / запомните PID.

Теперь откройте диспетчер задач и нажмите на вкладку «Детали». Найдите процесс с помощью вашего PID и завершите его. Теперь вы сможете запустить IIS Express с этим портом.


3

Я смог решить эту проблему, перезагрузив компьютер. Я безуспешно пытался сделать несколько вещей, наконец сдался и перезагрузил компьютер. Он работал хорошо в течение нескольких дней после перезапуска. Вероятно, результат какого-то процесса, который был повешен.


3

Для меня это была смесь следующих инструкций :

Удалите .vs \ applicationhost.config вашего веб-приложения и попробуйте снова.

А затем, возможно, самое главное, запустить Visual Studio с правами администратора.


3

Я добавил .UseUrls("https://localhost:<some port>/")в Program.cs. Похоже, это помогло мне!


2

Я просто включил «Включить SSL». Это решило мою проблему.

  1. Щелкните правой кнопкой мыши веб-проект
  2. Вкладка отладки
  3. Установите флажок «Включить SSL» (если он отключен, как в моем случае)

2

Я только что столкнулся с той же проблемой, и я убил все процессы "iisexpress.exe", которые все еще работали. Это сработало для меня!


2

Мое решение (для .net core 2.0) было то, что я забыл добавить номер порта в applicationUrl, под iisExpress в launchSettings.json

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}

Когда launchSettings.jsonVS автоматически генерируется или обновляется, он applicationUrlдолжен иметь /в конце. Более подробную информацию можно найти в blog.lextudio.com/…
Лекс Ли

2

Проблема может быть в том, что она [√] Enabled SSLбыла выбрана для вашего проекта (см. DebugВкладку в окне настроек проекта), но Visual Studio решает быть тупой и настраивать что-то подобное http://localhost:32396. Причина, по которой он терпит неудачу, заключается в том, что 1. это не так HTTPS, и 2. сертификат недействителен. Чтобы заставить его, вам нужно использовать порт в диапазоне 44300-44398.

См. Https://stackoverflow.com/a/24957146/1236397



1

Попробуй в cmd

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

и нажмите f5. Я не меняю порты, не удаляю файлы и не перезагружаю VS.


Может быть, объяснить, вы ответите немного. Просто убить процесс не может быть ответом здесь. А что после?
Шихам,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.