C# ASP.NET Core 3.1不支持生成此IWebHostBuilder实现
我正在尝试将.NETCore2.2升级到3.1,并出现以下错误 不支持生成此IWebHostBuilder实现 EndpointRoutingMiddleware匹配EndpointMiddleware设置的端点,因此必须在EndpointMiddleware之前添加到请求执行管道。 请通过在应用程序启动代码中对“Configure(…)”的调用中调用“iaapplicationbuilder.UseRouting”,添加EndpointRoutingMiddleware 我不知道这是为什么抱怨C# ASP.NET Core 3.1不支持生成此IWebHostBuilder实现,c#,.net-core-3.1,C#,.net Core 3.1,我正在尝试将.NETCore2.2升级到3.1,并出现以下错误 不支持生成此IWebHostBuilder实现 EndpointRoutingMiddleware匹配EndpointMiddleware设置的端点,因此必须在EndpointMiddleware之前添加到请求执行管道。 请通过在应用程序启动代码中对“Configure(…)”的调用中调用“iaapplicationbuilder.UseRouting”,添加EndpointRoutingMiddleware 我不知道这是为什么抱怨
IWebHostBuilder
有人能给我引路吗
Program.cs
public static void Main(string[] args)
{
IHost webHost = (IHost)BuildWebHost(args);
var runTask = webHost.RunAsync();
runTask.Wait();
return;
}
public static IHostBuilder BuildWebHost(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults
(Web =>
{
Web.UseStartup<Startup>()
.UseConfiguration(Configuration)
.UseSerilog()
.Build();
});
这个
代码需要重构以
public static async Task Main(string[] args) {
IHost host = BuildWebHost(args);
await host.RunAsync();
}
public static IHost BuildWebHost(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(Web => {
Web.UseStartup<Startup>()
.UseConfiguration(Configuration)
.UseSerilog();
})
.Build();
删除代码
.Build()
@Yinqiu,当我删除Build()
时,它抱怨无法将类型为“Microsoft.Extensions.Hosting.HostBuilder”的对象强制转换为类型为“Microsoft.Extensions.Hosting.IHost”。
。你能帮我解决这个问题吗。感谢此publicstaticvoidmain(string[]args){BuildWebHost(args).Build().Run();}
很抱歉一直修改此问题。当我相应地改变的时候。现在我从Startup.cs
得到另一个问题。以下是问题EndpointRoutingMiddleware与EndpointMiddleware设置的端点匹配,因此必须在EndpointMiddleware之前添加到请求执行管道。请通过在应用程序启动代码中调用“Configure(…)”,在调用中调用“iaapplicationbuilder.UseRouting”,添加EndpointRoutingMiddleware。
@user10216769该异常中的说明非常清楚。按照它的指示去做。@user10216769我还建议您查看迁移文档,因为您要从中迁移的版本发生了很多变化
//...
(Web =>
{
Web.UseStartup<Startup>()
.UseConfiguration(Configuration)
.UseSerilog()
.Build(); //<--DON'T DO THIS
});
//...GenericWebHostBuilder
public IWebHost Build()
{
throw new NotSupportedException($"Building this implementation of {nameof(IWebHostBuilder)} is not supported.");
}
public static async Task Main(string[] args) {
IHost host = BuildWebHost(args);
await host.RunAsync();
}
public static IHost BuildWebHost(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(Web => {
Web.UseStartup<Startup>()
.UseConfiguration(Configuration)
.UseSerilog();
})
.Build();
public static void Main(string[] args) {
IHost host = BuildWebHost(args);
host.Run();
}