C# 无法从其他设备连接到自托管网站 api

C# Can't connect to self hosted web api from other device

我有一个 C# 自托管网站 api(控制台应用程序 .NET 框架)。我可以从本地主机检查 api,但我无法从其他设备(例如 phone 或其他桌面)连接到网络 api。我尝试了 192.168.X.X:PORT 但没有成功。

我注意到如果您关闭防火墙,那么当您尝试从另一台设备向 API 发出请求时,请求会失败并出现错误: “错误的请求 - 无效的主机名。 HTTP 错误 400。请求主机名无效。” 如果我启用防火墙,那么请求将花费很长时间。

尝试从防火墙设置或禁用它进行新查询

在 sql servce clint 的 serveces 设置中插入类似 1433 的端口并启用它

This article 可能对您有帮助。

问题是默认情况下,绑定仅针对 localhost:PORT。如果您绑定到 0.0.0.0:PORT(并允许防火墙上的端口),您将能够从另一台机器访问。

您可以通过UseUrls()

配置它
public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseUrls("http://0.0.0.0:5000", "https://0.0.0.0:5001");
            });
}

或当运行应用程序

$> ./myApp --urls=http://0.0.0.0:5000