You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7 Kestrel如何通过appsettings.json配置指定路径的Unix Socket监听?

在.NET 7中通过appsettings.json配置Kestrel监听指定路径的Unix Socket

要在.NET 7的Kestrel中通过配置文件指定Unix Socket监听路径,你需要在Endpoints节点下用Url字段指定unix://协议格式的路径,而非自定义的SocketPath字段。

正确的appsettings.json配置示例

{
  "Monitoring": {
    "Kestrel": {
      "Endpoints": {
        "HttpMonitoringEndpoint": {
          "Url": "http://*:60765"
        },
        "UnixSocketMonitoringEndpoint": {
          "Url": "unix:///run/myapp/monitor.sock"
        } 
      }
    }
  }
}

关键说明

  1. 协议格式要求:Unix Socket的路径必须以unix://开头,后续跟绝对文件路径(注意是三个斜杠unix:///,因为协议后直接衔接文件系统路径)。
  2. 配置节点位置:Unix Socket端点和TCP端点一样,统一放在Endpoints节点下,无需单独的UnixSocketEndpoints或UnixDomainSocketEndpoints节点——这类节点仅用于Kestrel自动生成临时Socket的场景,无法指定自定义路径。
  3. 原有代码无需修改:你当前的配置加载代码(kestrelOptions.Configure(_configurationRoot!.GetRequiredSection("Monitoring").GetSection("Kestrel")).Load())可以直接读取上述配置,无需额外改动。

额外注意事项

  • 确保运行应用的进程对目标目录(如/run/myapp/)拥有读写权限,否则无法创建Socket文件。
  • Unix Socket文件在应用退出后不会自动删除,建议在应用启动前检查并清理旧的Socket文件,避免启动失败。

内容的提问来源于stack exchange,提问作者dodexahedron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:06:11