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

ASP.NET Core 6调试:如何通过设备名而非仅localhost访问WebAPI

实现ASP.NET Core 6 WebAPI通过机器名访问的解决方案

问题背景

我用Visual Studio创建了基础的ASP.NET Core 6 WebAPI,主路由返回“Hello world”,端口已修改为8888。调试时通过localhost:8888可正常访问,但希望能通过device:8888(device为我的机器名称)访问,使用Kestrel服务器,尝试过相关配置方案但未成功。

解决步骤

1. 配置Kestrel监听所有IP地址

在项目的Program.cs中,显式配置Kestrel监听本机所有IP的8888端口,确保服务能接收来自非localhost的请求:

var builder = WebApplication.CreateBuilder(args);

// 配置Kestrel监听所有IP的8888端口
builder.WebHost.ConfigureKestrel(serverOptions =>
{
    serverOptions.ListenAnyIP(8888);
});

// 添加控制器服务
builder.Services.AddControllers();

var app = builder.Build();

app.MapControllers();

app.Run();

2. 调整调试配置文件(launchSettings.json)

找到项目根目录下Properties文件夹中的launchSettings.json,修改applicationUrl字段,添加机器名对应的访问地址或监听所有IP:

"profiles": {
  "http": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "launchUrl": "weatherforecast",
    "applicationUrl": "http://0.0.0.0:8888;http://localhost:8888;http://device:8888",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}
  • 0.0.0.0:8888表示监听本机所有IP的8888端口,这样通过机器名device访问时,会自动映射到本机IP
  • 也可直接添加http://device:8888明确指定机器名地址

3. 开放Windows防火墙端口

确保Windows防火墙允许8888端口的入站连接:

  • 打开Windows Defender防火墙,进入「高级设置」
  • 新建入站规则:选择「端口」→ 输入8888→ 允许连接→ 应用到所有网络类型→ 命名规则后保存

4. 验证机器名解析

在命令行执行ping device,确认能返回本机的IP地址。如果无法解析,可修改hosts文件(路径:C:\Windows\System32\drivers\etc\hosts)添加映射:

你的本机IP地址    device

例如:192.168.1.100 device

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:55:21