Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core 3.1不支持生成此IWebHostBuilder实现_C#_.net Core 3.1 - Fatal编程技术网

C# ASP.NET Core 3.1不支持生成此IWebHostBuilder实现

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 我不知道这是为什么抱怨

我正在尝试将.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();  
}