我在Win Console应用程序上有一个HTTP服务器
我可以在局域网中访问它(没关系)
但是添加externalIP前缀会在运行时给我一个异常(不是在ide中)
我已在路由器中将端口转发设置为端口4100
我已禁用PC防火墙
例外:
System.Net.HttpListenerException(0x80004005):参数不正确
中的HTTP_SERVER.Program.Main(String [] args)中
在System.Net.HttpListener.AddAllPrefixes()中
在System.Net.HttpListener.Start()中
在C:\ Users \ ricca \ Desktop \ HTTP SERVER \ HTTP SERVER \ Program.cs:riga 34
以防万一:
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是正确的
欢迎大家回答
答案 0 :(得分:0)
这不是编程问题。
与网络相关的类不在乎另一端是在同一台计算机上(环回IP),在同一台交换机上还是在Voyager 2 Probe *上。如果它与环回IP一起使用,则仅出于网络原因可能会阻止它在网络内部或通过路由器**工作。
确定存在路径是网络问题,而不是编程问题。您正在尝试从路由器的Internet端访问它。至少这不是一件小事。实际上,它涉及“如何在Internet上托管服务器”。常见的解决方法包括“仅使用VPN并学习没有此功能的情况”。
*当然不是100%。您需要相当长的超时时间才能实现数分钟的距离。 Wich可能需要一些程序设置。
**诸如SQL Server默认安装之类的小警告事项,除了回送IP之外,无论如何都倾向于防止访问。默认密码/用户帐户的通常注意事项。适当的实例不会受到该限制。