Web API自主主机公共IP

时间:2017-06-14 20:41:48

标签: c# networking asp.net-web-api2 port portforwarding

我试图在不使用DDNS服务的情况下从任何地方访问由我编写的Web API服务(当前托管在控制台应用程序中)。我知道公共知识产权可能会发生变化,这无关紧要。我将始终可以访问新的。我只是为了它的乐趣而这样做。

到目前为止,我做了以下事情:

  1. 我在路由器的DHCP中设置静态IP(本例中为192.168.1.101);
  2. 添加了一个从50000端口转发的端口(更容易确保我不会混淆周围的东西);
  3. 为防火墙上的50000端口添加了入站规则,并设置了“允许连接”;
  4. 服务设置为始终在地址192.168.1.101:50000上启动。 Cors也设置为CorsOptions.AllowAll

    我的问题出现了:当我使用Postman使用本地IP地址和端口向API发出请求时,一切都按预期工作。

    但是,如果我尝试使用相同的端口访问公共IP地址,如下所示: public_ip:50000 / ApiRoute我得到超时,无论设备是什么(本地机器或连接在同一网络上的其他设备或不同设备)我都是从;

    公共IP地址的来源是ifconfig.co网站。

    有谁知道为什么公共IP不起作用?说实话,我是出于好主意。

1 个答案:

答案 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);
            }
        }
    }
}