我在Win 7上使用Asp.Net核心2.0.2和VS2017(15.3.5)。
我目前的Kestrel配置如下所示:
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureAppConfiguration((hostContext, config) =>
{
var envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
config.Sources.Clear();
config.AddJsonFile("appsettings.json", optional : false);
config.AddJsonFile($"appsettings.{envName}.json", optional : false);
config.AddEnvironmentVariables();
})
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5859);
})
.UseContentRoot(pathToContentRoot)
.Build();
这显然是在监听http://localhost:5859
。我想配置Kestrel,以便它只能侦听自定义URL,例如http://localhost:5859/MyNewApp
。我该怎么做?
(使用Core 1.0,我使用UseUrls("http://localhost:5859/MyNewApp")
部分完成了工作。它会在http://localhost:5859
以及http://localhost:5859/MyNewApp
上进行监听。在Core 2.0.2中执行相同操作会导致例外:
System.InvalidOperationException:只能使用IApplicationBuilder.UsePathBase()配置路径库。
答案 0 :(得分:1)
使用2.0时,您需要利用UsePathBase
,UseUrls
为removed from Kestrel。您希望在启动时使用Configure
方法执行此操作:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UsePathBase("/MyNewApp");
}