gpt4 book ai didi

c# - 在 IIS 中托管 RestAPI

转载 作者:行者123 更新时间:2023-11-30 13:53:42 25 4
gpt4 key购买 nike

我有一个相当简单的 .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 核心 2.2

最佳答案

对于 InProcess,它使用 IISHttpServer

enter image description here

对于您的代码,您正在配置使用 进程外UseKestrel()

enter image description here

对于解决方案,删除 .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 .

关于c# - 在 IIS 中托管 RestAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53688154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com