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

Что я делаю:

Удаление 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: ошибка

Я пробовал:

  • удаление приложенияhost.config(и изменение номера порта)
  • запуск visual studio как администратора
  • удаление папки IISExpress в документах (изменяет сообщение об ошибке до тех пор, пока папка не будет переустановлена)
  • переключение ssl и включение, копирование url для запуска. (примечание: я не использую ssl)
  • очистка всех ошибок sfc/scannow
  • запуск iisexpress с версией x86 и 64-разрядной версией

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Я смог разобраться с проблемой в два этапа:

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

Ответ 4

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

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

Работал для меня (TM).

Ответ от: fooobar.com/questions/56945/...

enter image description here

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

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

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

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

enter image description here

Ответ 9

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

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

Ответ 10

У меня была такая же проблема, но я исправил ее, перейдя в 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, также назначенный ему, я также удалил его.

Ответ 11

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

Ответ 12

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

enter image description here

Ответ 13

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

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

to

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

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

Ответ 14

Просто закройте визуальную студию и снова запустите ее. Это сработало для меня.

Ответ 15

Я не буду претендовать на полное понимание того, что ошибка 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, который может не соответствовать конкретной версии, которая установлена ​​/настроена в системе. Вы можете отладить/наблюдать эту проблему, отслеживая выполнение в Process Monitor и находить командную строку для iisexpress.exe. Запуск этой команды с добавлением /trace:error дает более информативное сообщение об ошибке предварительной загрузки CLR версии v4.0. К остроумию:

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


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

Ответ 16

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

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

Ответ 17

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

Ответ 18

Я добавил .UseUrls("https://localhost:<some port>/") в Program.cs. Казалось, это трюк для меня!

Ответ 19

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

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

enter image description here.

Перейдите в папку, где вы можете увидеть свое решение проекта и папки проекта (показать скрытые элементы в проводнике). Перейдите в скрытую папку .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. Вот ссылка Link, которая показывает, как открыть порты для IIS Express, чтобы разрешить удаленное подключение. Запуск от имени обычного пользователя не будет работать, если вы не запустите перечисленные команды netsh.

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

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

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

Ответ 20

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

Ответ 21

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

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

Ответ 22

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

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

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

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

Ответ 23

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

Ответ 24

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

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

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

Ответ 25

УТОЧНИТЬ

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

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

ОТВЕТ

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

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

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

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

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

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

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

Ответ 26

Я просто переключился на "Включить SSL". Это решило мою проблему.

  • Щелкните правой кнопкой мыши веб-проект
  • Отладка
  • Toggle Enable SSL "on" (если он выключен, что было моим делом)

Ответ 27

Я не понял, что вызвало проблему. Но repair install исправил его.

Ответ 28

Попробуйте в cmd

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

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

Ответ 29

Просто запустите визуальную студию в качестве администратора и это.

Ответ 30

Для меня IIS Express не был доступен, когда я добавил iplisten в DOS Prompt следующим образом: netsh http add iplisten MyIPAddress. Я исправил это, удалив iplisten следующим образом: netsh http delete iplisten MyIPAddress.