ConfigureWebHostDefaults

ConfigureWebHostDefaults

我正在尝试使用记录在here中的.NET Core 3.0中的新GenericHost,但是却遇到了一个非常基本的错误,即统计IHostBuilder不包含ConfigureWebHostDefaults函数的定义。

在这里查看IHostBuilder接口here的ASP.NET 3.0文档,我看不到对ConfigureWebHostDefaults的任何引用,所以我有点困惑。

我正在为Microsoft.Extensions.HostingMicrosoft.Extensions.Hosting.Abstractions使用3.0.0程序包,但禁不住觉得我或者缺少真正明显的东西,或者由于某种原因删除了ConfigureWebHostDefaults吗?

更新-Program.cs的屏幕截图

c# - IHostBuilder不包含ConfigureWebHostDefaults的定义-LMLPHP

更新-.csproj文件



<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.7" />
    <PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" />
    <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" />
  </ItemGroup>

</Project>

最佳答案

using Microsoft.Extensions.Hosting一样,ConfigureWebHostDefaults也需要using Microsoft.AspNetCore.Hosting;,如下所示:

using Microsoft.AspNetCore.Hosting; //<-- Here it is
using Microsoft.Extensions.Hosting;

namespace MyApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateWebHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}


而且,看起来您的项目是一个控制台应用程序。那就是问题所在。 ConfigureWebHostDefaults仅适用于Web应用程序。因此,您可以通过将Sdk="Microsoft.NET.Sdk"文件中的Sdk="Microsoft.NET.Sdk.Web"替换为.csproj来将控制台应用程序转换为Web Applicaton,如下所示:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

</Project>

关于c# - IHostBuilder不包含ConfigureWebHostDefaults的定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58097568/

10-12 15:26