通过 IP 访问 asp.net 核心 API 的 IISExpress

Accessing IISExpress for an asp.net core API via IP

我在 IIS Express 上有一个 asp.net 核心项目 运行。如果我以 localhost 身份在浏览器中输入 URL (http://localhost:53142/ and https://localhost:44374/),则它们会起作用,但是,如果我输入我的 IPv4 IP 地址 (192.168.1.72),它们就不起作用。

并排

我可以ping通192.168.1.72地址。

为什么我无法通过ip访问,我该如何访问?

IIS Express默认不允许远程连接。

这里有两个选项供您选择:

  1. 配置为像

    一样使用UseKestrel
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseUrls("http://0.0.0.0:5000;https://0.0.0.0:5001")
            .UseKestrel()
            .UseStartup<Startup>();
    

    然后,运行 项目与 ProjectName 从 VS,您将能够通过 http//ip:5000

  2. 访问
  3. 尝试创建 IIS 调试配置文件

    运行 VS 2017 as administrator-> 右键单击​​项目-> Properties->Debug->NEW->Enter IIS->Launch choose IIS-> Launch IIS Profile-> Access with IP地址

更新:

如果您坚持 IIS Express,请尝试 VS 扩展 Conveyor by Keyoti

有一个小的 open-source github 存储库可以完成这项工作。它是一个小型可移植可执行 (.exe) 应用程序,可让您的 API(实际端口)可通过本地网络访问。

回购 link:https://github.com/jocull/SharpProxy

如果您拥有电脑的管理员权限,则有一个更简单的解决方案,

localhost:1234 上给定的网络应用程序 运行,ip 10.10.10.10:

netsh interface portproxy add v4tov4 listenport=1234 listenaddress=10.10.10.10 connectport=1234 connectaddress=127.0.0.1

当不再需要时,删除记录

netsh interface portproxy delete v4tov4 listenport=1234 listenaddress=10.10.10.10

有关详细信息,请参阅 netsh interface portproxy add v4tov4