我正在关注自我托管的ASP.NET Web API服务示例here。但是,在基本地址中指定“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”重写为“+”?
答案 0 :(得分:9)
将HostNameComparisonMode
属性设置为Exact:
var config = new HttpSelfHostConfiguration("https://localhost/api/");
config.HostNameComparisonMode = HostNameComparisonMode.Exact;
有关HostNameComparisonMode
的更多信息,请参阅this article