【问题标题】:Host RestAPI inside IIS在 IIS 中托管 RestAPI
【发布时间】:2019-12-31 04:57:54
【问题描述】:

我有一个相当简单的 .NET WebApi 应用程序,我试图在 IIS 中托管它。遵循 MS 网站上关于此的所有说明。 这是它的启动方法。

    public static void Main(string[] args)
    {
        var host = WebHost.CreateDefaultBuilder(args)
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }

我将应用程序池配置为不使用任何托管代码,但日志中仍然出现此错误

Application startup exception: System.InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
   at Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.<>c__DisplayClass2_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
crit: Microsoft.AspNetCore.Hosting.Internal.WebHost[6]

我不知道有什么问题。 有什么建议么?

使用 .NET Core 2.2

【问题讨论】:

标签: c# asp.net-core-webapi


【解决方案1】:

对于InProcess,它使用IISHttpServer

对于您的代码,您正在配置使用out-of-processUseKestrel()

对于解决方案,删除.UseKestrel() 行。

public static void Main(string[] args)
{
    var host = WebHost.CreateDefaultBuilder(args)
                //.UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
    host.Run();
}

更多详情,请参考ASP.NET Core Module

【讨论】:

    【解决方案2】:

    我想使用UseKestrel()。 当我创建 .net core 2.0 或 2.1 项目时。我可以使用UseKestrel() 但如果我创建 .net core 2.2 项目,我将无法使用 UseKestrel()

    我就这样解决了这个问题

    • 创建新的 .net core 2.0 或 2.1 项目。然后,您可以将 .net core 项目升级到 2.2。它会起作用的。

    但这不是有效的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      相关资源
      最近更新 更多