13

我正在按照此处的示例进行自托管 ASP.NET Web API 服务。但是,当在基地址中指定“localhost”作为主机时,它会被翻译为“+”(意思是“所有可用”)。

var baseAddress = new Uri("http://localhost:13210");
var configuration = new HttpSelfHostConfiguration(baseAddress);
configuration.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "{controller}/{id}",
    defaults: new {id = RouteParameter.Optional});

using (var server = new HttpSelfHostServer(configuration))
{
    server.OpenAsync().Wait();
    stop.WaitOne();
    server.CloseAsync().Wait();
}

我真的希望我的主机只绑定到“localhost”——它只能从同一台机器访问,而且我不想弄乱 URL ACL。

如何配置 Web API 以将“localhost”重写为“+”?

4

1 回答 1

9

将您的HostNameComparisonMode属性设置为精确:

var config = new HttpSelfHostConfiguration("https://localhost/api/");
config.HostNameComparisonMode = HostNameComparisonMode.Exact;

有关HostNameComparisonMode 的更多信息,请参阅本文

于 2013-06-23T12:51:23.930 回答