Windows服务上托管的Web API问题

时间:2014-02-10 02:09:18

标签: c# asp.net-web-api dns windows-services

我在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);

0 个答案:

没有答案