Как решить ERR_CONNECTION_REFUSED при попытке подключения к локальному хосту IISExpress - Ошибка 502 (Не удается отладить из Visual Studio)?
Это работает на 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
![Захват Fiddler]()
Я удалил все настройки прокси-сервера из раздела подключения к локальной сети IE, где до того, как я получил всплывающее окно red-x в VS, указывает, что запуск IISExpress невозможен.
Это не вопрос SSL и не SSL.
У меня был установлен TFS Server - удалено, что в случае каких-то нечетных привязок, которые мешали.
Я пытался несколько раз удалять папку конфигурации/настроек IISExpress.
В текущем приложенииhost.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
.
Ответы
Ответ 1
Попробуйте изменить номер порта в своем проекте?
Свойства проекта → Веб → Серверы → URL-адрес проекта:
![введите описание изображения здесь]()
Не забудьте нажать Create Virtual Directory
или ответить "Да" на приглашение создать виртуальный каталог после изменения номера порта! (Спасибо Коннор)
Примечание. Я немного неохотно публикую это как ответ, так как я понятия не имею, что
проблема или то, что вызвало это, но у меня была аналогичная проблема, и изменение номера порта сделало трюк для меня. Я только размещаю это по предложению в комментариях, что это сработало и для кого-то другого.
В моем случае казалось, что что-то противоречило конкретному номеру порта, который я использовал, поэтому я изменился на другой, и мой сайт снова появился! Я не уверен, что это означает для старого номера порта, или если я когда-нибудь смогу использовать его снова. Может быть, кто-то более осведомленный, чем я, может перезвонить этому.
Ответ 2
Спасибо за все ответы. Я пробовал их всех, но никто из них не работал у меня. Что было сделано для удаления applicationhost.config из .vs-папки (найденной в папке вашего проекта/решения) и создания нового виртуального каталога (Project Properties > Web > Create Virtual Directory). Надеюсь, это поможет кому-то другому.
Ответ 3
Эта проблема может быть вызвана тем, что в недавнем прошлом вы использовали привязку IP-адреса в конфигурации вашего приложения.
Действия для решения проблемы:
- Запустить команду ниже при доступе к администратору в администраторе
netsh http show iplisten
Если вы видите что-то вроде ниже, это решение может не помочь вам.
IP-адреса, присутствующие в списке прослушивания IP:
0.0.0.0
Если вы видите что-то отличное от 0.0.0.0, попробуйте выполнить следующие шаги, чтобы исправить это.
- Запустите эту команду последовательно в расширенном командном терминале
netsh http delete iplisten ipaddress = 11.22.33.44 (где 11.22.33.44 - это фактический IP-адрес, который необходимо удалить)
netsh http add iplisten ipaddress = 0.0.0.0
IISReset
И теперь ваш issexpress настроен на прослушивание любого пинга, идущего на привязку localhost.
Ответ 4
Я только что исправил это для моей машины. Может быть, это будет работать для некоторых. Может быть, не для других, но вот что сработало для меня.
В IIS мне пришлось добавить привязки для https на веб-сайт по умолчанию (или, я полагаю, на веб-сайт, на котором вы запускаете приложение).
![enter image description here]()
Теперь мой localhost работает при отладке из Visual Studio.
Ответ 5
В моем случае это было вызвано запуском IIS без административных прав. Когда я запустил IIS в качестве администратора и запустил сайт, он работал нормально
Ответ 6
Решение Сэма работало для меня, но я не хотел запускать как администратор как постоянное решение.
Вот как я решил это в моем случае:
- Запустите CMD как admin
- Введите "netsh http show urlacl" и найдите зарезервированный URL-адрес с соответствующим портом
- Введите "netsh http delete urlacl url = YourReservedUrlHere"
После этого я мог запускать свое приложение без необходимости прав администратора. Но это перепуталось с возможностью просмотра моего приложения с внешнего компьютера. Достаточно скоро для меня.
Ответ 7
В моем случае это было вызвано переполнением цикла/стека.
Ответ 8
Я решил эту проблему, запустив Visual Studio с Run as administrator
. Это также необходимо, если вы хотите опубликовать свой проект в локальном IIS.
Чтобы установить это навсегда: -
- Щелкните правой кнопкой мыши значок Visual Studio
- Выберите
Properties
- Нажмите
Advanced
- Убедитесь, что
Run as administrator
установлен
- Нажмите
OK
на выход.
- Запустите Visual Studio, загрузите проект и начните отладку
Ответ 9
Я решил, перейдя в Свойства проекта → Отладка, после включения SSL и использования адреса в вашем браузере
![enter image description here]()
Ответ 10
У меня такая же проблема. Я попробовал эти шаги:
- Закрыто Visual Studio 2017
- Удален [solutionPath].vs\config\applicationhost.config
- Повторно открыл решение и нажал [Создать виртуальный каталог]
- Пытался запустить => ERR_CONNECTION_REFUSED
- НЕ УДАЛОСЬ
Еще одна попытка:
- Закрыто Visual Studio 2017
- Удален [solutionPath].vs\config\applicationhost.config
- Удалены. \Documents\IISExpress\config\applicationhost.config
- Повторно открыл решение и нажал [Создать виртуальный каталог]
- Пытался запустить => ERR_CONNECTION_REFUSED
- НЕ УДАЛОСЬ
Еще одна попытка:
- Закрыто Visual Studio 2017
- Удален [solutionPath].vs\config\applicationhost.config
- Удалены. \Documents\IISExpress\config\applicationhost.config
- Добавлен 127.0.0.1 localhost в C:\Windows\System32\drivers\etc\hosts
- Повторно открыл решение и нажал [Создать виртуальный каталог]
- Пытался запустить => ERR_CONNECTION_REFUSED
- НЕ УДАЛОСЬ
ЧТО ЭТО РАБОТАЛО:
- Закройте Visual Studio 2017
- Удалите [solutionPath].vs\config\applicationhost.config
- Запустите "Управление сертификатами компьютера" и найдите сертификат "localhost" в Personal-> Сертификаты
![enter image description here]()
- Удалите этот сертификат (делайте это на свой страх и риск)
- Пуск Панель управления\Все элементы панели управления\Программы и компоненты
- Найдите "IIS 10.0 Express" (или свою собственную версию IIS Express)
- Нажмите "Ремонт"
![enter image description here]()
- Повторно откройте решение и нажмите [Создать виртуальный каталог]
- Запустить веб-проект.
- Вы получите этот вопрос:
. Нажмите "Да" - Вы получите этот Вопрос:
. Нажмите "Да" - Теперь это работает.
Ответ 11
Моя проблема оказалась полным недостатком понимания перенаправления uri в процессе auth.
Я загрузил некоторый код, содержащий следующее объявление:
string redirecturi = " http://localhost/googlesignin";
Я использовал vs2015 с шаблоном веб-сайта. На моем сайте нет веб-страницы googlesignin!
Итак, почему эта работа вообще работала в течение нескольких дней при разработке моего сайта?
Доказательство того, что случайные ошибки могут привести к работе кода там, где он должен был сбой.
Я изменил googlesigin на GoogleDrive, который является именем моей веб-страницы, и все это сработало!
Мальчик, я глуп!
Ответ 12
Rebuild Все работало для меня. VS2013, IIS Express.
Ответ 13
В моем случае мой коллега изменил имя решения, чтобы после получения последней версии проекта я запустил свое веб-приложение с IIS EXPRESS, а затем получил сообщение ERR_CONNECTION_REFUSED
в моем Google Chrome.
После того, как я попробовал все решения, которые я нашел в Интернете, я наконец решил проблему с помощью этих шагов:
- Закрыть VS
-
Удалите папку .vs
папке проекта ![enter image description here]()
-
Запуск от имени администратора VS
-
Откройте "Отладка"> "Свойства [вашего приложения]"> "Интернет".
-
Измените порт в URL проекта и не забудьте использовать https
потому что в моем случае, когда я использую http
он все равно не работал.
-
Нажмите Create virtual directory
-
Запустите приложение еще раз с помощью IIS EXPRESS.
-
И веб-приложение успешно запустилось.
Надеюсь, это поможет.
Ответ 14
Убедитесь, что вы также указали стартовую страницу. Щелкните правой кнопкой мыши страницу ASPX, которую вы хотите использовать в качестве стартовой страницы, и выберите "Сделать стартовой страницей".
Ответ 15
Простой обходной путь (он работал для меня) - использовать IP-адрес вместо localhost. Это должно быть хорошо для ваших задач разработки.
Ответ 16
Я пробовал много методов в Chrome, но единственное, что мне помогло, это "Очистить данные браузера"
Пришлось сделать "продвинутую" версию, потому что стандарт не работал. Я подозреваю, что это были "Настройки контента", которые делали это.
Ответ 17
Недавно я столкнулся с этой проблемой, когда копирую исходный код с другого компьютера.
→ Удалить папку .vs (это скрытая папка, поэтому убедитесь, что у вас включена опция просмотра скрытой папки)
→ открой визуальную студию и построй свой проект. Visual Studio создаст новую папку .vs в соответствии с текущей конфигурацией системы.
Ответ 18
![**enter image description here**]()
Восстановление IIS 10 Express решило проблему для меня. Надеюсь, это очистило кэш IIS Express.
Ответ 19
Хотя, возможно, это не связано с вашей проблемой, у меня сегодня была такая же проблема. Как оказалось, я включил модуль перезаписи URL, чтобы заставить мой сайт использовать HTTPS вместо HTTP, и в моей производственной среде это работало просто отлично. Но в моей системе разработки, где он работает как приложение на моем сайте по умолчанию, это не удалось...
Оказывается, у моего сайта по умолчанию не было привязки к HTTPS, поэтому модуль перезаписи отправлял меня из HTTP в HTTPS, но порт HTTPS ничего не слушал...
Есть вероятность, что у вас есть эта проблема по аналогичной причине. Эта ошибка, по-видимому, возникает, если не существует надлежащей привязки для сайта, к которому вы пытаетесь получить доступ...
Ответ 20
Это может относиться к определенной группе людей с этой проблемой... возможно, с другим ароматом.
Я принудительно перенаправил https на RELEASE.
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
#if !DEBUG
filters.Add(new RequireHttpsAttribute());
#endif
}
И на моем iis express не был включен https.
Работает правильно на DEBUG