Visual studio 在Visual Studio中运行ASP.NET核心web应用程序时建议使用的服务器

Visual studio 在Visual Studio中运行ASP.NET核心web应用程序时建议使用的服务器,visual-studio,asp.net-core,Visual Studio,Asp.net Core,很难找到此特定功能的正确文档 在Visual Studio 2017中的绿色箭头(启动配置文件下拉列表)下,我有一个以我的项目命名的菜单项。这是Kestrel服务器选项吗?这是默认值吗?此选项(Kestrel)是ASP.NET Core 2.1 web应用程序的推荐选项吗?IIS Express是否被视为过时 我觉得有这么多选择真的有点烦人。特别是当IDE中没有快速解释并且您不知道哪个是哪个时。这就像在Spotify中有三个播放按钮,每个按钮执行相同的操作,但名称不同。那么我应该点击哪一个呢?我

很难找到此特定功能的正确文档

在Visual Studio 2017中的绿色箭头(启动配置文件下拉列表)下,我有一个以我的项目命名的菜单项。这是Kestrel服务器选项吗?这是默认值吗?此选项(Kestrel)是ASP.NET Core 2.1 web应用程序的推荐选项吗?IIS Express是否被视为过时


我觉得有这么多选择真的有点烦人。特别是当IDE中没有快速解释并且您不知道哪个是哪个时。这就像在Spotify中有三个播放按钮,每个按钮执行相同的操作,但名称不同。那么我应该点击哪一个呢?

我建议阅读以下文档:

ASP.NET Core提供了两种服务器实现:

Kestrel是ASP.NET核心的默认跨平台HTTP服务器

HTTP.sys是基于HTTP.sys内核的仅限Windows的HTTP服务器 驱动程序和HTTP服务器API。(HTTP.sys在ASP.NET中称为WebListener 核心1.x.)

简单地说,ASP.NET核心运行自己的HTTP服务器。然后可以使用IIS、IIS Express、Nginx、Apache作为反向代理

在Visual Studio中运行ASP.NET核心项目时,可以在两种模式下运行:

  • 没有调试-它会启动Krestrel和IIS Express
  • 通过调试-它只会激发Krestrel

  • 还有自托管,IIS/NGINX作为反向代理,IIS/NGINX作为实际主机。这就是问题所在-没有推荐的服务器。您可以将ASP.NET核心与许多服务器一起使用。不同的服务器提供不同的功能、好处等。IIS Express并不是过时的,它一直是用于开发的。IIS,在.NET Core之前唯一的生产选项也没有过时。如果你不想要它的功能,你不需要使用它。是的,但是对于VisualStudio来说,必须有一个比其他的更好/更快/更现代的,例如在调试时。生产服务器是一个完全不同的故事,是的,您基本上可以使用ASP.NET内核公开使用您喜欢的任何服务器。您不仅要为自己着想,还要为初学者和对IDE不熟悉的人着想。他们不知道这些不同的选择是什么。我想我是想说这不是最好的UX。IIS(扩展到IIS Express)现在只能充当反向代理。在IIS内部托管仍然是一项实验性功能。这意味着你无论如何都要用红隼。如果要部署到IIS,则应将项目配置为使用IIS或IIS Express。您可以通过配置来完成这两项工作。您可以检查环境变量或命令行参数,并针对每种情况使用不同的配置方法。这将允许您在大多数情况下仅使用Kestrel快速测试代码,并在类似于生产的条件下使用IIS/IIS Express进行调试/测试我的默认设置是IIS Express。我有一个干净的VS2017安装。有没有办法重置默认的web服务器启动配置文件?另外,请阅读以下文章:“Visual Studio启动IIS Express并运行应用程序。”这是令人困惑的,因为Razor Pages被认为是构建ASP.NET核心web应用程序的新方法,我希望使用Kestrel而不是IIS Express运行Razor Pages web应用程序?下面是一个在VS:@PussInBoots:1)Kestrel不是完整的web服务器的情况下运行Krestre的示例。对于很多事情来说,它已经足够了,但您几乎总是希望将它用作真正的web服务器(如IIS、nginx、Apache等)后面的反向代理。它不能替代其他完整的web服务器。2) 不要喝可乐饮料。Razor页面不是“构建ASP.NET核心web应用程序的新方法”。这只是实现这一目标的一种方式,坦率地说,这是一种相当差劲的方式。如果你有一个简单的观点,主要是做CRUD类型的东西,Razor页面可能很好,但对于任何更复杂的MVC仍然是一条路要走。你能详细说明一下“当你在Visual Studio中运行ASP.NET核心项目时,默认情况下会触发Krestrel和IIS Express吗?”?这意味着一个或另一个,或者两者同时使用?