Я впервые использую новую Visual Studio 2013 с IISExpress (ранее использовался сервер разработки ASP.net на VS2010). У меня возникают проблемы при отладке моего проекта.
Вот что я вижу в Chrome:
Невозможно установить безопасное соединение с сервером. Это может быть проблема с сервером или может потребоваться сертификат аутентификации клиента, которого у вас нет. Код ошибки: ERR_SSL_PROTOCOL_ERROR
Я обновил свои свойства -> веб-файл, так что теперь URL-адрес проекта использует URL-адрес https. Однако после этого я получаю новую ошибку при запуске:
Подключение к localhost было прервано. Код ошибки: ERR_CONNECTION_RESET
Благодарность
Ответы:
Если вы используете URLRewrite для принудительного подключения SSL в своем web.config, вероятно, он переписывает ваш адрес localhost для принудительного использования https. Если отладка с включенным SSL не важна для вас и вы используете URLRewrite, подумайте о добавлении
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
в ваш файл web.config раздела перезаписи. Это остановит перезапись для любых адресов localhost, но оставит ее на месте в производственной среде. Если вы не используете URLRewrite или вам требуется отладка с использованием SSL, может помочь http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx . Это для VS2010, но должно хватить и для VS2013.источник
Я получал ERR_CONNECTION_RESET, потому что мой номер порта настроенного приложения Visual Studio 2013 / IIS Express НЕ находился в диапазоне : 44300-: 44398 . (Я не помню, чтобы мне приходилось отклонять какие-либо предупреждения, чтобы выйти за пределы этого диапазона.) Изменить номер порта на что-то в этом диапазоне - это все, что мне нужно было сделать, чтобы он заработал.
Я заметил это после просмотра
netsh http show sslcert > sslcert.txt
вывода и чего-то щелкнув по материалам, которые я недавно прочитал о номерах портов.источник
netsh http add sslcert ...
для добавления порта, который хотите использовать. Полезно в некоторых случаях.netsh
на помощь, это достойно записи в блоге ...Обязательно удалите все предыдущие сертификаты localhost, поскольку они могут конфликтовать с сертификатом, созданным IIS Express. У меня была такая же ошибка (ERR_SSL_PROTOCOL_ERROR), и мне потребовалось много часов, чтобы окончательно разобраться в ней после опробования многих многих «решений». Моя ошибка заключалась в том, что я создал свой собственный сертификат localhost, а их было два. Мне пришлось удалить оба, и IIS Express воссоздал их.
Вот как вы можете проверить и удалить сертификат localhost:
В Visual Studio выберите проект и на вкладке свойств включите SSL = true. Сохранить, собрать и запустить. IIS Express сгенерирует новый сертификат localhost.
Примечание. Если это не сработает, попробуйте следующее: обязательно отключите IIS Express в проекте VS и остановите все запущенные на нем приложения перед удалением сертификата localhost. Кроме того, вы можете перейти в «Панель управления> Программы» и «Восстановить IIS Express».
источник
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
Я резюмирую шаги, которые помогли мне решить эту проблему:
New_Certificate_Hash будет вашим сертификатом по умолчанию, связанным с вашим локальным хостом (который мы нашли на шаге 4) или тем, который вы хотите добавить в качестве нового сертификата.
PS Спасибо за ответ uosɐſ (который помог мне в решении этой проблемы)
источник
Проблема, с которой я столкнулся, была связана со мной, когда в какой-то момент я включил HSTS для localhost и не понял, что это сломает мой http: // localhost: someport в IIS Express.
HSTS сообщает браузеру (в моем случае Chrome) ВСЕГДА запрашивать URL-адрес с использованием HTTPS. Поэтому, хотя я даже не включил SSL для своего приложения MVC 5, браузер все равно будет пытаться получить доступ к моему сайту, используя HTTPS в URL-адресе вместо HTTP.
Исправление?
источник
Ни один из вышеперечисленных вариантов у меня не работал. Пришлось сделать следующее:
Я получил шаги из этой ветки.
Надеюсь это поможет.
источник
В моем случае я создал самозаверяющий сертификат, и он работал, за исключением того, что я получал ошибку в браузере, потому что сертификат был ненадежным. Итак, я переместил сертификат в папку Trusted Root Certification Authorities> Certificates в оснастке Certificates. Это сработало, и я закрыл Visual Studio на день.
На следующий день я начал свой проект и получил ошибку, упомянутую в исходном вопросе. Проблема в том, что сертификат, который вы настроили для IISExpress, должен существовать в папке Personal> Certificates, иначе HTTPS перестанет работать. После успешного запуска IIS Express вы можете перетащить сертификат обратно в надежное расположение. Он будет работать до тех пор, пока вы не перезапустите IIS Express.
Не желая возиться с перетаскиванием сертификата каждый раз вперед и назад, я просто помещаю копию сертификата в оба места, и теперь все работает нормально.
источник
У меня такая же проблема в Visual Studio 2015. Поскольку я использую привязку SSL в web.config
И я могу решить проблему с ответом мистера Джреджера. Заменив
с участием
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
в мой web.config, поэтому мой код
источник
Проблема, с которой я столкнулся, была связана с ответом @Jason Kleban, но у меня была одна небольшая проблема с моими настройками в Visual Studio Properties для IIS Express.
Убедитесь, что после изменения порта в диапазоне от 44300 до 44399 адрес также начинается с
HTTPS
источник
У меня возникла эта проблема, я настроил свой сайт для глобального требования https в FilterConfig.cs.
Я забыл изменить URL-адрес проекта на https: из этого руководства http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- sql-database / в разделе ВКЛЮЧИТЬ SSL, часть 4. Это привело к полученным вами ошибкам.
источник
Еще одна проблема, с которой я столкнулся дважды:
в IIS Express
applicationhost.config
порядок привязок имеет значение. Одна привязка может иметь приоритет над привязкой SSL, в результате чего она не работает.Пример:
Возможно, вы добавили привязку, аналогичную второй, чтобы иметь доступ к вашему WebService извне
localhost
. Поскольку эта привязка прослушивает любой адрес, кажется, что она переопределяет привязку SSL, хотя использовался другой порт.Удалите злую привязку или сдвиньте ее вниз.
источник
Удаление каталогов IISExpress и vs и использование диапазона портов ssl от 44300 до 44399 (включительно) из этой статьи сработало для меня.
источник
Это анекдотично, как слышал коллега, но якобы это проблема с принудительным включением https в Chrome. Я обычно запускаю в firefox, поэтому раньше не видел этой проблемы. Использование firefox или ie работало для моего коллеги.
источник
Если вам нужно использовать порт за пределами диапазона 44300-44399, вот обходной путь:
Это регистрирует сертификат IIS Express Development с этим портом, и это самый простой способ, который я нашел, чтобы обойти требование диапазона 44300-44399.
источник
Моя проблема была вызвана Fiddler. Когда Fiddler выходит из строя, он иногда портит настройки вашего прокси. Казалось, что простой запуск Fiddler все исправит (возможно, он как-то сам себя починит).
источник
В подобных ситуациях часто помогает программа проверки установки сертификата Digicert .
Я смог убедиться, что предпринимаемый SSL-сертификат был тем, который я ожидал, сравнив серийный номер.
Для меня ответ @Jason Kleban был реальной проблемой, но это может быть очень полезной утилитой для проверки ваших основных утверждений о том, какой сертификат загружается.
источник
В моем случае после трехдневной попытки все решить, просто запустив Visual Studio с помощью «Запуск от имени администратора».
источник
Я только что восстановил свой компьютер. Этот поток дал мне подсказки, где я понял, что в настройках проекта> Интернет, проект был настроен на использование HTTP и порта HTTP. После обновления до HTTPS и правильного порта HTTPS все снова заработало.
источник
Чтобы перейти к другим ответам о настройке порта SSL между 44300 и 44399, мне не удалось изменить свойство SSL Enabled в Visual Studio или установить конкретный URL-адрес SSL. Другие ответы, такие как восстановление IIS Express, не помогли. Решением было зайти в папку .vs параллельно с файлом sln, открыть подпапку config, а затем отредактировать файл applicationhost.config. Затем я вручную добавил строку https и перезапустил VS.
источник
В моем случае я просто забыл, что у меня настроена привязка для (в моем случае) https: // localhost: 44300 в полном IIS. Вы не можете иметь обоих!
источник
В моем случае URL-адрес localhost был перенаправлен на https: // localhost, когда я отлаживал. Это происходило от одного момента к другому, ничего не меняя. Я решил это, сделав полную перезагрузку в браузере. Вот ссылка
источник