HTTP SERVER外部IP前缀

时间:2018-11-23 20:01:04

标签: c# ip-address router httpserver

我在Win Console应用程序上有一个HTTP服务器
我可以在局域网中访问它(没关系)
但是添加externalIP前缀会在运行时给我一个异常(不是在ide中)
我已在路由器中将端口转发设置为端口4100
我已禁用PC防火墙
例外:

  

System.Net.HttpListenerException(0x80004005):参数不正确
     在System.Net.HttpListener.AddAllPrefixes()中
     在System.Net.HttpListener.Start()中
     在C:\ Users \ ricca \ Desktop \ HTTP SERVER \ HTTP SERVER \ Program.cs:riga 34

中的HTTP_SERVER.Program.Main(String [] args)中

以防万一:
Parametro non corretto->参数错误
riga 34->第34行(我称之为listener.Start();

代码:

try
    {
        listener = new HttpListener();
        listener.Prefixes.Add("http://localhost:4100/main/");

        string externalip = new WebClient().DownloadString("http://icanhazip.com");
        Console.WriteLine(externalip);
     -->listener.Prefixes.Add("https://"+externalip+":4100/main/");

        listener.Prefixes.Add("http://"+ip+":4100/main/");
        Console.WriteLine("http://" + ip + ":4100/main/");
        listener.Start();

            //....
 }
catch(WebException eccezione_web)
 {
     Console.WriteLine(eccezione_web.Status);
 }
catch(Exception eccezione)
 {
     Console.WriteLine(eccezione.ToString());
 }

externalip是正确的

欢迎大家回答

1 个答案:

答案 0 :(得分:0)

这不是编程问题。

与网络相关的类不在乎另一端是在同一台计算机上(环回IP),在同一台交换机上还是在Voyager 2 Probe *上。如果它与环回IP一起使用,则仅出于网络原因可能会阻止它在网络内部或通过路由器**工作。

确定存在路径是网络问题,而不是编程问题。您正在尝试从路由器的Internet端访问它。至少这不是一件小事。实际上,它涉及“如何在Internet上托管服务器”。常见的解决方法包括“仅使用VPN并学习没有此功能的情况”。

*当然不是100%。您需要相当长的超时时间才能实现数分钟的距离。 Wich可能需要一些程序设置。

**诸如SQL Server默认安装之类的小警告事项,除了回送IP之外,无论如何都倾向于防止访问。默认密码/用户帐户的通常注意事项。适当的实例不会受到该限制。