Как решить проблему ERR_CONNECTION_REFUSED при попытке подключиться к локальному хосту, на котором запущен IISExpress - Ошибка 502 (не удается выполнить отладку из Visual Studio)?

100

Он работает на Windows Server 2008 и работал несколько месяцев назад. Я только сейчас снова использую этот сервер для работы с VS.

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

Это произошло при запуске Visual Studio, а затем при запуске моих проектов для отладки.

Попытка запустить любой сайт localhost:xxxxпри запуске IISExpress (используя фактический номер порта в конфигурации для доступа к разным сайтам):

This webpage is not available

ERR_CONNECTION_REFUSED

Я занимаюсь этим уже несколько дней, так как я читал, что у других были похожие проблемы, пробовал большинство вещей, которые я читал, включая изменение managedruntimeversionс «v4.0» на «v4.0.30319» для .net 4.5 (у меня никогда не было приходилось делать это раньше) и отключение модуля ведения журнала (все предложения можно найти здесь ).

В моем hostsфайле всего две записи , указывающие на IP-адреса внутренних серверов. Нет localhostсвязанных IP-адресов или ссылок.

Я переустановил IIS Express и Visual Studio 2013. Я также создал новый WebApplicationсайт, чтобы попытаться решить эту проблему (простые и никакие другие сложные привязки).

Когда я раскручиваю Fiddler, я вижу на странице следующее:

[Fiddler] The socket connection to localhost failed. 
ErrorCode: 10061. 
No connection could be made because the target machine actively refused it 127.0.0.1:23162

Захват скрипачей

Я удалил все настройки прокси из раздела подключения IE к локальной сети, где раньше я получал всплывающее окно с красным x в VS, указывающее, что что-то вроде IISExpress не может запускаться .

Это не вопрос SSL и не SSL.

У меня был установлен TFS Server - он был удален на случай, если возникли какие-то странные привязки, которые мешали.

Я несколько раз пытался удалить папку config / settings IISExpress.

Текущий applicationhost.config содержит:

<site name="WebApplication1" id="4">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:23162:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />

Я бы хотел, чтобы был тег для really-stuck.

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

-- ОБНОВИТЬ --

В строке URL-адреса, когда я ввожу имя компьютера или IP-адрес: xxxx, я получаю ERR_CONNECTION_TIMED_OUTвместо ERR_CONNECTION_REFUSED.

ElHaix
источник

Ответы:

101

Попробуйте изменить номер порта в своем проекте?

Свойства проекта → Интернет → Серверы → URL-адрес проекта:

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

Не забудьте нажать кнопку Create Virtual Directoryили ответить «Да» на запрос о создании виртуального каталога после изменения номера порта! (Спасибо, Коннор )

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

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

sǝɯɐſ
источник
1
это сработало для меня - вместо того, чтобы изменять настройки браузера, как указано в этом ответе stackoverflow.com/questions/7227845/…
Дон Чидл,
это сработало для меня. после изменения номера порта мне было предложено изменить мой виртуальный каталог, который каким-то образом изменился и стал неправильным.
GraehamF 01
Это сработало и для меня. Понятия не имею, как это случилось. Я остановил IIS Express, и при следующем запуске ничего, кроме ошибки.
Джозеф Феррис
1
Обязательно нажмите «Создать виртуальный каталог» после изменения номера порта!
Коннор Уильямс
Это случилось со мной сегодня снова! : / Хотя я рад, что мое предложение помогает людям, я очень хотел бы понять, что происходит не так. Медленно перебираю используемые номера портов здесь: P
s
37

Спасибо за ответы на все вопросы. Я перепробовал их все, но ни один из них не помог мне. Что действительно помогло, так это удалить applicationhost.config из папки .vs (находящейся в папке вашего проекта / решения) и создать новый виртуальный каталог (Свойства проекта> Интернет> Создать виртуальный каталог). Надеюсь, это поможет кому-то другому.

Энни Лаганг
источник
3
Я столкнулся с той же проблемой, когда открыл решение VS2015 в VS2013 и некоторое время работал с ним, а затем вернулся к VS2015. Это решило удаление applicationhost.config.
Gary.Ray
В моем случае applicationhost.config и перезапуск Visual Studio привели к «ошибке загрузки проекта». Тогда я даже не мог получить доступ к свойствам проекта.
Alex
34

Эта проблема может быть связана с тем, что в недавнем прошлом вы использовали привязку IP-адреса в конфигурации вашего приложения.

Шаги для решения проблемы:

  • Запустите команду ниже в командном терминале доступа администратора

netsh http показать iplisten

Если вы видите что-то вроде того, что показано ниже, это решение может вам не помочь.

IP-адреса, присутствующие в списке IP-адресов для прослушивания:

0.0.0.0

Если вы видите что-то отличное от 0.0.0.0, попробуйте следующие шаги, чтобы исправить это.

  • Выполните следующую команду оболочки в порядке с повышенным командным терминалом

netsh http удалить iplisten ipaddress = 11.22.33.44

netsh http добавить iplisten ipaddress = 0.0.0.0

iisreset

  • (Здесь 11.22.33.44 - это фактический IP-адрес, который необходимо удалить)

И теперь ваш issexpress настроен на прослушивание любого пинга, приходящего на привязку localhost.

Нирадж Кумар Чаухан
источник
@ Нирадж Кумар Чаухан спас день, бутон! Спасатель ... Не знаю, как вообще удалили 0.0.0.0, но добавление его снова решило проблему.
Сетлс
После семи часов поиска, почему сервер отчетов Power BI не слушал должным образом: 2 секунды этого исправили. Спасибо! В нашей существующей конфигурации вместо 0.0.0.0 было «::»; Разве это не то же самое и / или как это можно было изменить?
MattV
Эй, это сработало! На моем компьютере первая команда показала нулевые IP-адреса, поэтому я просто выполнил команду «добавить» и команду «iisreset». После этого мне все еще нужно было повторно развернуть мой проект и перезапустить IIS во второй раз, но потом это сработало.
Мэтью Олден,
20

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

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

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

Теперь мой локальный хост работает при отладке из Visual Studio.

Стюарт
источник
Отметим, что для проверки, не в этом ли проблема, просто замените https на http в вашем URL-адресе, поскольку привязка http уже должна быть на месте.
DubDub
Это исправило это для меня. Я подозреваю, что когда я сказал Visual Studio создать второе приложение для моего IIS-сервера разработки, что-то должно было удалить привязки моего первого приложения.
Мэтью Олден,
7

У меня такая же проблема. Я пробовал эти шаги:

  1. Закрыл Visual Studio 2017
  2. Удален [путь решения] .vs \ config \ applicationhost.config.
  3. Повторно открыл решение и щелкнул [Создать виртуальный каталог]
  4. Пытался запустить => ERR_CONNECTION_REFUSED
  5. НЕ СМОГЛИ

Еще одна попытка:

  1. Закрыл Visual Studio 2017
  2. Удален [путь решения] .vs \ config \ applicationhost.config.
  3. Удален. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Повторно открыл решение и щелкнул [Создать виртуальный каталог]
  5. Пытался запустить => ERR_CONNECTION_REFUSED
  6. НЕ СМОГЛИ

Еще одна попытка:

  1. Закрыл Visual Studio 2017
  2. Удален [путь решения] .vs \ config \ applicationhost.config.
  3. Удален. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Добавлен 127.0.0.1 localhost в C: \ Windows \ System32 \ drivers \ etc \ hosts
  5. Повторно открыл решение и щелкнул [Создать виртуальный каталог]
  6. Пытался запустить => ERR_CONNECTION_REFUSED
  7. НЕ СМОГЛИ

ЧТО ЭТО РАБОТАЛО:

  1. Закройте Visual Studio 2017.
  2. Удалите [solutionPath] .vs \ config \ applicationhost.config.
  3. Запустите «Управление сертификатами компьютеров» и найдите сертификат «localhost» в разделе «Личные»> «Сертификаты». введите описание изображения здесь
  4. Удалите этот сертификат (делайте это на свой страх и риск)
  5. Пуск Панель управления \ Все элементы панели управления \ Программы и компоненты
  6. Найдите «IIS 10.0 Express» (или вашу собственную версию IIS Express).
  7. Нажмите «Ремонт». введите описание изображения здесь
  8. Снова откройте решение и нажмите [Создать виртуальный каталог].
  9. Запустить веб-проект.
  10. Вы получите этот вопрос: введите описание изображения здесь. Нажмите "Да"
  11. Вы получите этот вопрос: введите описание изображения здесь. Нажмите "Да"
  12. Теперь это работает.
Люциан
источник
6

Решение Сэма сработало для меня, но я не хотел работать с правами администратора в качестве постоянного решения.

Вот как я решил это в моем случае:

  1. Запустите CMD от имени администратора
  2. Введите "netsh http show urlacl" и найдите зарезервированный URL с соответствующим портом.
  3. Введите "netsh http delete urlacl url = YourReservedUrlHere"

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

RoyBS
источник
Спасибо, решил мою проблему. После удаления зарезервированного URL-адреса перестройте проект, и он отлично работает без режима администратора.
Парвин
5

В моем случае это было вызвано запуском IIS без прав администратора. Когда я запустил IIS как администратор и запустил сайт, он работал нормально

Сэм
источник
Это был ответ для меня, хотя я не помню, чтобы запускал VS от имени администратора в первый раз, когда я открывал проект, когда он действительно работал.
Стаффорд Уильямс,
Oh
3

В моем случае это было вызвано бесконечным переполнением цикла / стека.

Джош
источник
1

Я решил эту проблему, запустив Visual Studio с расширением Run as administrator. Это также необходимо, если вы хотите опубликовать свой проект в локальном IIS.

Чтобы установить это постоянно: -

  1. Щелкните правой кнопкой мыши значок Visual Studio
  2. Выбрать Properties
  3. Нажмите Advanced
  4. Убедитесь, Run as administratorчто отмечен
  5. Нажмите OKдо конца.
  6. Запустите Visual Studio, загрузите свой проект и начните отладку.
Джоанна
источник
1

В моем случае мой коллега изменил имя решения, чтобы после получения последней версии проекта я запускал свое веб-приложение с помощью IIS EXPRESS, а затем получил сообщение ERR_CONNECTION_REFUSEDв своем Google Chrome.

После того, как я попробовал все решения, которые нашел в Интернете, я наконец решил проблему, выполнив следующие действия:

  1. Закрыть VS
  2. Удалите .vsпапку в папке проектавведите описание изображения здесь

  3. Запуск от имени администратора VS

  4. Откройте Debug> [Your Application] Properties> Web.

  5. Измените порт в URL-адресе проекта и не забудьте использовать, https потому что в моем случае, когда я использую, httpон все еще не работал.

  6. Нажмите Create virtual directory

  7. Снова запустите приложение с помощью IIS EXPRESS.

  8. И веб-приложение успешно запустилось.

Надеюсь, это поможет.

Сатрия Джанака
источник
1

Я решил, перейдя в Project Properties -> Debug, после включения SSL и использования адреса в вашем браузере

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

DigaoParceiro
источник
0

Rebuild У меня все заработало. VS2013, IIS Express.

Джон Ренсби
источник
0

Убедитесь, что у вас указана стартовая страница. Щелкните правой кнопкой мыши страницу .aspx, которую вы хотите использовать в качестве начальной страницы, и выберите «Установить как начальную страницу».

Поляна Меллор
источник
0

Простая работа (у меня это сработало) - использовать IP-адрес вместо localhost. Это должно подойти для ваших задач разработки.

raj240
источник
0

Я пробовал много способов в Chrome, но единственное, что у меня сработало, это «Очистить данные просмотра».

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

GrowthCode
источник
0

Недавно я столкнулся с этой проблемой, когда копирую исходный код с другого компьютера.

-> Удалите папку .vs (это скрытая папка, поэтому убедитесь, что у вас включена опция просмотра скрытой папки)
-> откройте визуальную студию и создайте свой проект. Visual Studio создаст новую папку .vs в соответствии с текущей конфигурацией системы.

Вездесущие разработчики
источник
0

Хотя, вероятно, это не связано с вашей проблемой, сегодня у меня была такая же проблема. Как оказалось, я включил модуль перезаписи URL, чтобы заставить мой сайт использовать HTTPS вместо HTTP, и в моей производственной среде это сработало отлично. Но в моей системе разработки, где он работает как приложение на моем сайте по умолчанию, это не удалось ...
Как оказалось, мой сайт по умолчанию не имел привязки для HTTPS, поэтому модуль перезаписи отправлял меня с HTTP на HTTPS, но ничего не было прослушивание порта HTTPS ...
Есть вероятность, что у вас есть эта проблема по той же причине. Эта ошибка возникает, если нет надлежащей привязки к сайту, к которому вы пытаетесь получить доступ ...

Вим тен Бринк
источник
0

Это может иметь отношение к определенной группе людей с этой проблемой ... возможно, в другом аспекте.

Я принудительно перенаправлял https на RELEASE.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
  #if !DEBUG
  filters.Add(new RequireHttpsAttribute());
  #endif    
}

И на моем iis express не было включено https. Правильная работа на DEBUG

Ущипнуть
источник
0

Я просто пытался привязать IP-адрес к IIS, но в конечном итоге возился с файлами конфигурации IIS. Я буквально пробовал более 20 решений для этого, включая

  1. .vs удаление файла проектного решения
  2. Удаление файла конфигурации папки IIS
  3. Удаление папки IIS
  4. Обновление VS2019
  5. VS2019 ремонт
  6. Бесчисленное количество раз перезапуск машины и VS
  7. различные команды на CMS
  8. различные обновления программного обеспечения
  9. Изменение различных портов

но то, что сработало, что может работать и для кого-то другого, было для REPAIRIIS из

Control Panel\Programs\Programs and Features

Иначе вы можете обратиться к этому ответу , а также

Восстановление IIS10

Хамелеон
источник
0

Убедитесь, что отладка скриптов отключена

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

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

Hnodrog
источник
0

Если вы используете «настоящий» IIS, это может произойти, если остановлена ​​служба W3SVC (World Wide Web Publishing).

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

Я знаю, что в заголовке написано IIS express, однако Google, похоже, не отфильтровывает экспресс даже при использовании подсказки -Express, поэтому, надеюсь, это поможет кому-то другому, кто нашел эту страницу, а не специфичную для IIS.

Джастин
источник