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
我有一个 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