Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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 web api在不同程序集中启动.cs时返回404_C#_Asp.net Core_.net Core_Asp.net Core Webapi - Fatal编程技术网

C# ASP.NET core web api在不同程序集中启动.cs时返回404

C# ASP.NET core web api在不同程序集中启动.cs时返回404,c#,asp.net-core,.net-core,asp.net-core-webapi,C#,Asp.net Core,.net Core,Asp.net Core Webapi,我有.net核心web API,当我在不同的程序集中隔离Startup.cs时,所有API返回404,如果我将Startup.cs返回到存在控制器的同一程序集中,它们将再次工作 这是我的web API的程序.cs: public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public stat

我有.net核心web API,当我在不同的程序集中隔离Startup.cs时,所有API返回404,如果我将Startup.cs返回到存在控制器的同一程序集中,它们将再次工作

这是我的web API的程序.cs

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

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
      WebHost.CreateDefaultBuilder(args)
       .UseStartup<Startup>()
       .ConfigureAppConfiguration((hostContext, configApp) =>
       {
           configApp.SetBasePath(Directory.GetCurrentDirectory());
           configApp.AddJsonFile("appsettings.json", false, true);
           configApp.AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", false, true);
       });
}

因此,我需要将startup类放在不同的程序集中,然后在多个Web API项目中使用它

用以下行替换
.UseStartup

.UseStartup<Application.AppComponents.Startup>() 
.UseSetting(WebHostDefaults.ApplicationKey, typeof(Program).GetTypeInfo().Assembly.FullName)
.UseStartup()
.UseSetting(WebHostDefaults.ApplicationKey,typeof(程序).GetTypeInfo().Assembly.FullName)

其中
Application.AppComponents.Startup
是类库中启动文件的命名空间

超光速子,你能解释一下为什么这会解决它吗?我有一个非常类似的问题,但是这个改变并不能纠正它。
.UseStartup<Application.AppComponents.Startup>() 
.UseSetting(WebHostDefaults.ApplicationKey, typeof(Program).GetTypeInfo().Assembly.FullName)