Asp.net mvc 4 HttpSelfHostServer未绑定到主机名
我使用的是Asp.net mvc 4 HttpSelfHostServer未绑定到主机名,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我使用的是HttpSelfHostServer和asp-net-mvc4-web-api 当我创建服务器时,我会指定一个基址,通常类似于http://foo.com:8080 假设此服务器有多个IP10.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:8
HttpSelfHostServer
和asp-net-mvc4-web-api
当我创建服务器时,我会指定一个基址,通常类似于http://foo.com:8080
假设此服务器有多个IP10.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
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);
}
很可能这三个地址都将变为127.0.0.1。您是否尝试从其他计算机访问它们?您可以通过更改HttpSelfHostConfiguration上的HostNameComparisonMode属性来修改此行为。默认情况下,该值为strong通配符 config.HostNameComparisonMode=System.ServiceModel.HostNameComparisonMode.strong通配符 您可以在此处阅读有关此设置的更多信息:
这些请求都来自远程机器。请立即访问。正是我需要的。