【问题标题】:Using Kestrel Without IIS and VS 2017在没有 IIS 和 VS 2017 的情况下使用 Kestrel
【发布时间】:2018-10-25 09:13:58
【问题描述】:

依赖于微软文档:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/?view=aspnetcore-2.0&tabs=aspnetcore2x

Kestrel 可以单独使用,也可以与反向代理服务器一起使用,例如 IIS、Nginx 或 Apache。反向代理服务器接收来自 Internet 的 HTTP 请求,并在进行一些初步处理后将其转发给 Kestrel。

如果没有 Kestrel 或自定义服务器实现,则无法使用 IIS、Nginx 和 Apache。 ASP.NET Core 设计为在其自己的进程中运行,因此它可以跨平台一致地运行。

但是当我运行 Visual Studio 2017 时,总是 IIS Express 运行。那么如果可能依赖于 MS 文档,那么如何单独依赖 kestrel。

【问题讨论】:

  • 您是否尝试在运行下拉菜单中将执行配置文件从 IIS Express 更改为以您的启动项目命名的配置文件?
  • 请提供有关执行配置文件的更多详细信息及其对启动配置的影响是否需要更改?

标签: asp.net .net asp.net-core .net-core


【解决方案1】:

您可以在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 中运行,而无需您进行任何更改。

【讨论】:

  • 我的VS在菜单栏中没有这个选项(我之前可能把它去掉了)。它叫什么,所以我可以重新添加它?
猜你喜欢
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2011-08-02
  • 2020-08-04
相关资源
最近更新 更多