【问题标题】:Issue upgrading to ASP.NET Core 2.1 using UNIX Sockets使用 UNIX 套接字升级到 ASP.NET Core 2.1 的问题
【发布时间】:2018-05-28 00:01:14
【问题描述】:

将应用程序升级到 ASP.NET Core 2.1 时,UNIX 套接字不再工作,并且应用程序在启动时抛出未处理的异常:

System.ArgumentException:仅支持 ListenType.IPEndPoint。

如何使用 ASP.NET Core 2.1 监听 UNIX 套接字?

【问题讨论】:

    标签: asp.net-core kestrel-http-server asp.net-core-2.1


    【解决方案1】:

    在 ASP.NET Core 2.1 中,Kestrel 服务器切换到“Sockets”传输实现,它只支持 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2018-09-23
      • 1970-01-01
      • 2021-10-13
      • 2019-11-19
      • 2019-08-29
      相关资源
      最近更新 更多