我正在使用HttpSelfHostServer
与asp 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:8080
和http://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);
}
答案 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您是否尝试从其他计算机访问它们?