我在Windows服务上编写并托管了一个web api,它可以与内部网络一起使用。现在我需要在公共域机器上运行这个Windows服务,该机器获得外部源的公共IP和内部网的内部IP。由于某种原因,我无法通过公共IP访问Web api访问请求。下面列出的一些代码可以让您轻松了解我在做什么。我是web api的新手,欢迎任何建议,改进! 到目前为止,我已尝试在baseURL中使用*,+,它将绕过此问题以指定OnStart()中的IP,但它会在尝试提取请求流时始终返回Bad Request。 我想我不是在这里正确地将公共IP转换为内部IP,我不知道该怎么做。 请帮忙!
Windows服务的OnStart()
IPHostEntry host;
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
address = ip.ToString();
if (string.IsNullOrEmpty(address))
address = "localhost";
string baseAddress = "http://" + address + ":9000/";
WebApp.Start<StartUp>(url: baseAddress);