无法在同一本地网络中的 Android 手机上访问 Windows 笔记本电脑本地主机

无法在同一本地网络中的 Android 手机上访问 Windows 笔记本电脑本地主机

免责声明:我知道此网站上存在此问题的几种变体,但他们都没有帮助我解决我的问题——相信我,如果我不必再发布另一个帖子,我会非常高兴。

这个问题的后续内容:即使有防火墙规则且没有防火墙,笔记本电脑和手机之间也无法 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>();
                });

相关内容