【问题标题】:How can I run a Blazor App from another device on my local network?如何从本地网络上的其他设备运行 Blazor 应用程序?
【发布时间】:2020-09-11 15:42:54
【问题描述】:

我刚刚完成了我的第一个 Blazor 应用程序。我可以使用 Chrome 或 Edge 在 Vs Code 和 Visual Studio 中运行和调试。现在我想在局域网上的其他设备上运行该应用程序。我在 Windows 防火墙中为端口 5001 创建了一条规则,但我无法使用我的 PC 的 IP 地址从本地网络上的其他设备访问我的应用程序。这是我已经能够用其他堆栈做的事情。我错过了一些配置步骤吗?谢谢。

【问题讨论】:

  • 此问题与 Blazor 无关。您的问题是,当您的 Web 服务器绑定到 localhost 时,您的本地网络无法访问它。这真的是“本地主机”。您需要将 Web 服务器配置为绑定到 IP 地址或主机名,以便可以通过本地网络访问它。有几种方法可以做到这一点,并且至少有一个答案可以解释一种方法。另一种选择是使用反向代理,它将网络流量代理到本地主机。这似乎是您最终使用的解决方案 (ngrok)。

标签: c# blazor


【解决方案1】:

这里是blog article问题的解释,基本上需要以下几个步骤:

  • 在特定端口上打开防火墙
  • 为 Program.cs 中的所有可用 IP 地址指定您的 IP 地址或 0.0.0.0:

        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                //webBuilder.UseUrls("https://192.168.120.112:65437");
            });
    
  • 使用 Kestrel 和 not IIS-Express
  • 运行项目

【讨论】:

【解决方案2】:

我尝试了上面的建议,但无法让它发挥作用。我终于使用下面的命令获得了我想要的 ngrok 功能。

ngrok http https://localhost:5001 -host-header="localhost:5001"

【讨论】:

  • Ngrok 在 LAN 中是矫枉过正,当解决方案是在运行应用程序时更改服务器绑定地址时
【解决方案3】:

在我的例子中,我在文件launchSettings.jsonas could be seen in this answer中添加了条目https://*:5001

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-06
    • 2023-01-24
    • 1970-01-01
    • 2021-05-14
    • 2017-09-09
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多