HttpSelfHostServer没有绑定到主机名

时间:2012-11-21 03:10:15

标签: asp.net-mvc-4 asp.net-web-api

我正在使用HttpSelfHostServerasp net mvc 4 web api

一起工作

当我创建服务器时,我指定一个基地址,通常是http://foo.com:8080

让我们说这个服务器有多个ips 10.0.0.010.0.0.110.0.0.2

我们也会说

  • http://foo.com指向10.0.0.0
  • http://bar.com指向10.0.0.1
  • http://baz.com指向10.0.0.2

如果HttpSelfHostServer绑定到http://foo.com:8080,为什么我仍可以http://bar.com:8080http://baz.com:8080

访问它

这是实例化服务器的代码

    public Server(string name, Uri baseAddress)
    {
        Name = name;
        TimeCreated = DateTime.Now;
        BaseAddress = baseAddress;
        var config = new HttpSelfHostConfiguration(BaseAddress);

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new {id = RouteParameter.Optional}
            );

        // Create server
        _server = new HttpSelfHostServer(config);
    }    

2 个答案:

答案 0 :(得分:1)

您可以通过更改HttpSelfHostConfiguration上的HostNameComparisionMode属性来修改此行为。默认情况下,该值为StrongWildCard。

config.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.StrongWildcard;

您可以在此处详细了解此设置: http://msdn.microsoft.com/en-us/library/system.servicemodel.hostnamecomparisonmode.aspx

答案 1 :(得分:0)

有可能三个地址都将转到127.0.0.1您是否尝试从其他计算机访问它们?