Проблема обновления до ASP.NET Core 2.1 с использованием сокетов UNIX - PullRequest
0 голосов
/ 28 мая 2018

При обновлении приложения до ASP.NET Core 2.1 сокеты UNIX больше не работают, и приложение выдает необработанное исключение при запуске:

System.ArgumentException: поддерживается только ListenType.IPEndPoint.

Как прослушивать сокеты UNIX с использованием ASP.NET Core 2.1?

1 Ответ

0 голосов
/ 28 мая 2018

В ASP.NET Core 2.1 сервер Kestrel переключился на транспортную реализацию «Сокеты», которая поддерживает только IP-сокеты.

Чтобы использовать сокеты UNIX, транспортная реализация «LibUV» должна бытьиспользуется вместо этого.

Для этого измените код запуска, чтобы выбрать транспорт LibUV:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseLibuv()
        .UseUrls("http://unix:/var/run/myapi.sock")
        .UseStartup<Startup>();

, а затем измените файл csproj, чтобы он ссылался на метапакет Microsoft.AspNetCore.All вместо .App метапакет:

<ItemGroup>
  <!-- Change to ".All" if this was ".App" -->
  <PackageReference Include="Microsoft.AspNetCore.All" />
</ItemGroup>
...