.NET Core отличается от ASP.NET Core..NET Core - базовая среда выполнения.ASP.NET Core - это среда, которая может работать поверх .NET Core или полной среды выполнения .NET Framework.Как вы упомянули, ваше приложение предназначено для полной версии 4.7.1 платформы, а не .NET Core 2.0 или 2.1
. Новый HttpClient и SocketsHttpHandler являются частью .NET Core 2.1..Они включены в сборку System.NET.Http.Вы можете использовать их в любом приложении, предназначенном для этой среды выполнения, даже в настольных приложениях.Я уже делаю это без каких-либо ссылок на сборки или пакеты ASP.NET Core.Все, что я добавил, было ссылкой на System.Net.Http.
My csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Net.Http">
<HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0-rc1\ref\netcoreapp2.1\System.Net.Http.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
и пример вызова:
using System;
using System.Net.Http;
using System.Net;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var handler = new SocketsHttpHandler
{
MaxConnectionsPerServer=100,
AutomaticDecompression=DecompressionMethods.GZip|DecompressionMethods.Deflate
};
var client = new HttpClient(handler);
var result = await client.GetStringAsync(someUrl);
Console.WriteLine("Hello World!");
}
}
Ваш проект будет иметьнацеливаться на эту конкретную среду выполнения, даже на 2.0, если вы хотите их использовать.Вам также необходимо установить .NET Core 2.1 RC 1 SDK , чтобы создавать и создавать проекты, ориентированные на .NET Core 2.1.Вам также нужно будет установить новую среду выполнения на производственных серверах.
После этого вы можете создать проект .NET Core из командной строки с dotnet new
и именем шаблона, например:
dotnet new razor
dotnet new mvc
dotnet new angular
Или через Visual Studio, из категории Visual C# > .NET Core
и выбора шаблона ASP.NET Core Web Application
.
Вы также можете создать его из шаблона Web > ASP.NET Core Web Application
, если выберете .NET Core
как среда выполнения и ASP.NET Core 2.1
как цель.
Этот класс доступен только для , если вы нацелены на .NET Core 2.1 .Если я изменю цель на netcoreapp2.0
, компилятор будет жаловаться на то, что SocketsHttpHandler не существует.
В настоящее время нет документации по SocketsHttpHandler, за исключением пары постов в блоге и самого исходного кода