依赖于 Microsoft 文档:
Kestrel 可以单独使用,也可以与反向代理服务器一起使用,例如 IIS、Nginx 或 Apache。反向代理服务器接收来自 Internet 的 HTTP 请求,并在经过一些初步处理后将它们转发到 Kestrel。
如果没有 Kestrel 或自定义服务器实现,就无法使用 IIS、Nginx 和 Apache。 ASP.NET Core 被设计为在自己的进程中运行,以便它可以跨平台保持一致的行为。
但是当我运行 Visual Studio 2017 时,始终运行 IIS Express。那么如何单独依赖 kestrel(如果可能的话)取决于 MS 文档。
最佳答案
您可以从VS2017中的工具栏更改启动应用程序
在上面的示例中,Visual Studio 将在 IIS Express(带有勾号的项目)中托管我的应用程序。如果您想将其作为 Kestrel 托管应用程序运行,那么我会从下拉列表中选择 WebApplication2
。现在,当我启动应用程序时,它将从命令提示符窗口运行。
如果您使用的是 .NET Core 2.0,那么您的 Program.cs
文件应如下所示:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}
在幕后(在 Build()
方法中)ASP.NET Core 将添加调用,以确保您的应用程序将在 IIS 和 Kestrel 中运行,而无需您进行任何更改。
关于asp.net - 在没有 IIS 和 VS 2017 的情况下使用 Kestrel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50351849/