Visual Studio 2017 Включить SSL

Как включить SSL для проекта в Visual Studio 2017?

В VS15 я мог выбрать Проект -> Свойства -> Отладка -> Включить SSL. Эта опция недоступна в VS2017. Куда это переехало?

Редактировать:

Я даже пробовал редактировать .\vs\config\applicationhost.config но безрезультатно:

        <listenerAdapters>
            <add name="http" />
            <add name="https" />
        </listenerAdapters>

        <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":8080:localhost" />
                </bindings>
            </site>
            <site name="Filters" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:51107:localhost" />
                    <binding protocol="https" bindingInformation="*:43107: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" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>

        <webLimits />

Редактировать:

Другой вариант, который я попробовал, но который кажется мне неуклюжим и отчасти лишает смысла IDE, - это настроить Kestrel для использования HTTPS. Это не идеально, так как мне пришлось экспортировать копию сертификата для localhost из IIS, а IIS Express все еще пытается загрузить сайт на другой порт.

public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel(options =>
                options.UseHttps(new X509Certificate2("path/to/cert.pfx", "password")))
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseUrls("http://localhost:5100", "https://localhost:4300")
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}

К сожалению, это не работает при запуске от VS17. В первый раз я получил ошибку 502.2 (я думаю), теперь все, что я получаю, это неспособность соединиться с ошибкой в ​​Chrome. я могу бежать dotnet run от PowerShell, и он отлично работает.

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

10 ответов

Порты заблокированы в IIS Express, так что его не нужно запускать от имени администратора...

Допустимые порты: 44300 - 44399

Прочитайте статью сообщества разработчиков https://developercommunity.visualstudio.com/content/problem/39430/changing-port-number-in-a-web-project-does-not-imm.html

Вы можете редактировать launchSettings.json, но порты ssl должны попадать в этот диапазон.

Это для проекта Asp.Net MVC .Net Framework

  1. Выберите ваш проект, выделив его.
  2. Затем нажмите F4, чтобы открыть панель свойств.
  3. Найдите элемент SSL Enabled в списке и установите для него значение True, а затем скопируйте значение SSL URL в буфер обмена.
  4. Пока ваш проект выделен, нажмите Alt + Enter, чтобы открыть диалоговое окно "Свойства" - вставьте скопированный URL-адрес SSL в URL-адрес проекта в поле ввода веб-меню.

Для Visual Studio 2017:

  1. В обозревателе решений щелкните правой кнопкой мыши проект> Свойства
  2. Выберите вкладку отладки
  3. Установите флажок Включить SSL

В обозревателе решений щелкните правой кнопкой мыши по имени вашего сайта и выберите "Окно свойств", или просто нажмите F4. В разделе "Веб-сервер разработчика" измените SSL Enabled с False на True.

Для тех, кто работает с ядром 1.x asp.net в Visual Studio 2017 RC, вы должны изменить строку "sslPort": 0 в файле launchSettings.json на любой номер порта, который вы хотите использовать для SSL. Это эффективно изменяет привязки в файле.\ Vs\config\applicationhost.config, упомянутом в предыдущих ответах.

Это для Asp.Net Core 2.0:

  1. Откройте обозреватель решений в VS2017.
  2. Двойной щелчок Properties (да, это тоже сам объект, а не просто папка)
  3. открыто Debug с левой стороны
  4. Прокрутите вниз и выберите Enable SSL

Если он уже включен, откройте launchSettings.json (развернуть Properties) и установить "sslPort" в 0, затем выполните шаги снова.

VS2017 теперь должен спросить вас, хотите ли вы добавить сертификат SSL (что-то, что он не делает, если вы изменили launchSettings.json по своему усмотрению), и он установит порт для вас.

Property_settings У меня, к сожалению, была такая же проблема, я не мог видеть флажок "включить SSL" на вкладке "Отладка" свойств проекта... Наконец-то нашел! -> Установите запуск на "МКС Экспресс", тогда вы сможете выбрать его;-)

Редактирование .\vs\config\applicationhost.config на самом деле работал для меня.

<site name="Filters" id="2">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation="*:51107:localhost" />
    **<binding protocol="https" bindingInformation="*:43107:localhost" />**
  </bindings>
</site>

Тем не менее, он загружает приложение в браузере, используя порт не-https по умолчанию. Если вы вручную указываете свой браузер на порт 43107, он должен работать.

редактировать

Это работало для меня несколько раз, но перестало работать. Последующее тестирование показало, что всякий раз, когда я нажимал кнопку, чтобы начать отладку в VS 2017 RC, он удалял привязку, которую я добавил вручную.

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

Один важный момент, который вы можете упустить, это то, что вам нужно запустить Visual Studio от имени администратора (щелкните правой кнопкой мыши значок VS и выберите "Запуск от имени администратора". Я столкнулся с этой проблемой SSL, а после запуска VS от имени администратора я заставил его работать.

Если вы видите параметр SSL включен в окне свойств проекта, но он неактивен

  1. Закройте Visual Studio
  2. Отредактируйте файл vwd.webinfo и добавьте атрибут sslPort="44317" в элемент iisExpressSettings.
  3. В качестве альтернативы вы можете удалить файл vwd.webinfo, и Visual Studio создаст новый при открытии проекта.
Другие вопросы по тегам