免责声明:我知道此网站上存在此问题的几种变体,但他们都没有帮助我解决我的问题——相信我,如果我不必再发布另一个帖子,我会非常高兴。
这个问题的后续内容:即使有防火墙规则且没有防火墙,笔记本电脑和手机之间也无法 Ping 工作
我在 Windows 笔记本电脑上运行 Web API,这是一个在 Kestrel Web 服务器上运行的 ASP.NET WebAPI。我无法从 Android 手机访问此 API。
我的笔记本电脑 ( 192.168.178.44
) 和手机 ( 192.168.178.69
) 都位于同一个本地网络中。两个设备之间可以 Ping 通。
这是我的笔记本电脑上运行的网络服务器:
在我的笔记本电脑上运行localhost:5000/api/salt/a
一切正常。但是,http://192.168.178.44:5000/api/salt/a
在我的手机上输入 Chrome 和 Firefox 时,结果都是ERR_CONNECTION_TIMED_OUT
。
我认为可能是防火墙的问题,但即使禁用防火墙后问题仍然存在,就像我上面链接的另一个问题一样。
我还能做什么来尝试解决这个问题?
答案1
正如@Robert 在评论中指出的那样“根据定义,在本地主机上运行的服务器只能在同一设备上运行”。
因此解决方案是让服务器监听通配符而不是本地主机。
对我来说,这意味着在 ASP Web API 中向 Web HostBuilder 添加一行代码:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://*:5000/;https://*:5001");
webBuilder.UseStartup<Startup>();
});