【问题标题】:Run .net core web api in local network在本地网络中运行 .net core web api
【发布时间】:2019-07-20 21:02:23
【问题描述】:

我想开发和测试运行在 192.168.x.x 地址范围而不是 127.0.0.1 的 .net core web api

最后我想从那个 api 获得结果,但从我的手机上的浏览器运行(连接到同一个 wi-fi 网络)

尝试修改红隼运行:

WebHost.CreateDefaultBuilder(args)
            .UseUrls("http://192.168.0.10:5000")
            .UseStartup<Startup>();

但它不起作用,错误: 无法分配请求的地址...在 System.Net.Sockets.Socket

【问题讨论】:

    标签: .net-core kestrel


    【解决方案1】:

    一个简单的解决方法是更改​​您的 launchSettings.json(如果使用 VisualStudio)或启动参数以侦听 URL http://0.0.0.0:5000https://0.0.0.0:5001

    使用这些 URL 会将 kestrel 绑定到本地计算机上的所有可用 IP 地址。

    此外,根据您查询 API 的方式,您可能需要配置 CORS。在开发环境中,我通常将以下行添加到Startup.Configure

    app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
    

    【讨论】:

    • 我已经像你一样配置了 cors。您的解决方案有效,但仅适用于我的台式计算机。有没有办法从同一网络上的移动设备上尝试(意味着连接到同一路由器)
    • 在同一个路由器上并不一定意味着他们在同一个网络上,你能从你的电脑上ping你手机的IP吗?一些路由器还设置了隔离设置,用于将 Wifi 上的设备相互隔离。如果我没记错的话,该技术称为AP Isolation。来自techwalla.com/articles/what-is-ap-isolation 他们对 AP 隔离的定义是:“AP 隔离是一种防止连接到 AP 的移动设备相互直接通信的技术”
    猜你喜欢
    • 1970-01-01
    • 2018-05-14
    • 2020-01-02
    • 2018-04-26
    • 2017-02-13
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多