зависимость Kestrel.Https 1.0.0-rc1-final не поддерживает фреймворк DNXCore, версия = v5.0

Я пытаюсь настроить https на своем сервере Kestrel для работы на Ubuntu 14 с dnxcore50.

Но когда я добавляю зависимость к:

"Microsoft.AspNet.Server.Kestrel.Https": "1.0.0-rc1-final"

И я пытаюсь восстановить свой пакет, я получаю это сообщение:

Зависимость Kestrel.Https 1.0.0-rc1-final не поддерживает платформу DNXCore, версия = v5.0

Если я захожу в Windows и использую dnx451 и добавляю ту же зависимость, все работает отлично.

Но если я не могу использовать Kestrel.Https на Ubuntu с dnxcore50, как я могу настроить Https на Ubuntu используя dnxcore50?


person Rafael Miceli    schedule 07.04.2016    source источник


Ответы (2)


Это связано с тем, что HTTPS-версия Kestrel нацелена только на полную платформу .NET на RC1: https://www.nuget.org/packages/Microsoft.AspNet.Server.Kestrel.Https/1.0.0-rc1-final.

Начиная с версии RC2, Kestrel.Https будет нацелен на netstandard1.3: https://github.com/aspnet/KestrelHttpServer/blob/dev/src/Microsoft.AspNetCore.Server.Kestrel.Https/project.json#L20.

Таким образом, решение состоит в том, чтобы либо дождаться сброса RC2, либо использовать биты RC2 с кровотечением из MyGet.

person Henk Mollema    schedule 07.04.2016

Сегодня Kestrel уже поддерживает HTTPS:

Вот библиотека, которая поддерживает его с версии 1.0.0:

https://www.nuget.org/packages/Microsoft.AspNetCore.Server.Kestrel.Https/

Чтобы реализовать это в своем коде, в основном для инициализации вашего основного приложения asp.net добавьте UseHttps в качестве опции.

Вот пример того, как это сделать!

    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel(options =>
            {
                // options.ThreadCount = 4;
                options.NoDelay = true;
                options.UseHttps("testCert.pfx", "testPassword");
                options.UseConnectionLogging();
            })
            .UseUrls("http://localhost:5000", "https://localhost:5001")
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Startup>()
            .Build();

        // The following section should be used to demo sockets
        //var addresses = application.GetAddresses();
        //addresses.Clear();
        //addresses.Add("http://unix:/tmp/kestrel-test.sock");

        host.Run();
    }

Ниже также есть ссылка из образца

https://github.com/aspnet/KestrelHttpServer/blob/dev/samples/SampleApp/Startup.cs#L37-L43

person Ricardo Mendes    schedule 14.12.2016
comment
Ссылка на потенциальное решение всегда приветствуется, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы другие пользователи имели некоторое представление о том, что это такое и зачем оно здесь. Всегда цитируйте наиболее релевантную часть важной ссылки на случай, если целевой сайт недоступен или навсегда отключится. Учтите, что возможная причина того, что почему и как удаляются некоторые ответы, — это не более чем ссылка на внешний сайт?. - person FelixSFD; 14.12.2016
comment
Ну грустно @FelixSFD - person Rafael Miceli; 14.12.2016
comment
Я просто добавил код, чтобы улучшить ответ, теперь лучше понять? - person Ricardo Mendes; 14.12.2016