0

我正在HttpSelfHostServerasp net mvc 4 web api

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

让我们说这个服务器有多个 ips 10.0.0.0, 10.0.0.1,10.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);
    }    
4

2 回答 2

1

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

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

您可以在此处阅读有关此设置的更多信息:http: //msdn.microsoft.com/en-us/library/system.servicemodel.hostnamecomparisonmode.aspx

于 2012-11-21T03:48:31.027 回答
0

有可能所有三个地址都将访问 127.0.0.1 您是否尝试从不同的机器访问它们?

于 2012-11-21T03:22:02.927 回答