Asp.net core 我不知道';t使用Kestrel作为web服务器,并在代码中启用IIS集成,但显示服务器为Kestrel的响应头
我使用.NETCore2.1并将其发布到IIS8.5。我很难理解.NET核心托管的概念 该程序是.csAsp.net core 我不知道';t使用Kestrel作为web服务器,并在代码中启用IIS集成,但显示服务器为Kestrel的响应头,asp.net-core,iis,.net-core,kestrel-http-server,Asp.net Core,Iis,.net Core,Kestrel Http Server,我使用.NETCore2.1并将其发布到IIS8.5。我很难理解.NET核心托管的概念 该程序是.cs public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDe
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
公共类程序
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
}
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
}
您可以看到没有UseKestrel
word,但在响应头中,它显示服务器是Kestrel
在项目文件中,进程中也没有InProcess
。我没有像useiinsintegration
这样的代码
我的问题摘要:
进程内
还是进程外
AspNetCoreModule
,但是是哪个文件?(w3wp?)dotnet run
命令来运行w3wp.exe
和dotnet.exe
- 您的托管模式是:
- 您的托管模式不是:
图像源和参考文档:如果您比较文档: v 2.1: 及 v 2.2: 您可以在一开始就看到版本之间的差异 在2.1中: 由于ASP.NET核心应用程序在独立于IIS工作进程的进程中运行,因此该模块还处理进程管理。当第一个请求到达时,模块启动ASP.NET核心应用程序的进程,并在应用程序崩溃时重新启动该应用程序。这与在IIS中运行的ASP.NET 4.x应用程序的行为基本相同,这些应用程序由Windows process Activation Service(WAS)管理 在第2.2节中: ASP.NET核心模块是一个本机IIS模块,可插入IIS管道以执行以下操作之一: 在IIS工作进程(w3wp.exe)内托管一个ASP.NET核心应用程序,称为进程内托管模型。 将web请求转发到运行Kestrel服务器的后端ASP.NET核心应用程序,称为进程外托管模型 进程中是v2.2的默认值 我在V3.1的进程内模型上测试了我的设置,它按照您的预期工作。在本地,它返回kestrel,在IIS上,它返回IIS服务器
所有答案都在这两个链接下。您可以创建一个新的ASP.NET核心项目,转到源代码目录,运行命令
dotnet run
,您将看到Kestrel服务器的标题。我想是的,但我希望任何链接或ILSpy或源代码都可以。您好,我的本地和IIS都在V2.1中返回Kestrel。对v3.1不太清楚