我试图在不使用DDNS服务的情况下从任何地方访问由我编写的Web API服务(当前托管在控制台应用程序中)。我知道公共知识产权可能会发生变化,这无关紧要。我将始终可以访问新的。我只是为了它的乐趣而这样做。
到目前为止,我做了以下事情:
服务设置为始终在地址192.168.1.101:50000上启动。 Cors也设置为CorsOptions.AllowAll
我的问题出现了:当我使用Postman使用本地IP地址和端口向API发出请求时,一切都按预期工作。
但是,如果我尝试使用相同的端口访问公共IP地址,如下所示: public_ip:50000 / ApiRoute我得到超时,无论设备是什么(本地机器或连接在同一网络上的其他设备或不同设备)我都是从;
公共IP地址的来源是ifconfig.co网站。
有谁知道为什么公共IP不起作用?说实话,我是出于好主意。
答案 0 :(得分:0)
请尝试在基本URL中添加一个星号(*),以确保可以从任何IP地址访问该API,就像下面的代码一样:
using Microsoft.Owin.Hosting;
using System;
namespace WebApiDocker
{
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://*:80/";
using (WebApp.Start<Startup>(url: baseAddress))
{
Thread.Sleep(Timeout.Infinite);
}
}
}
}