什么是kestrel web服务器,它与IIS/IIS Express的关系如何?

我在IIS Express上开发应用程序,并将其托管在IIS web服务器上.与ASP.NET Core我依赖Microsoft.AspNetCore.Server.Kestrel,我的初创公司依赖.UseServer("Microsoft.AspNetCore.Server.Kestrel").但当我运行我的网站时,我仍然会在系统托盘中看到IIS Express图标.有人问我是在使用IIS Express还是Kestrel,我不知道该说什么!

我在Azure的PC和主机上开发时没有任何跨平台的要求,所以我很困惑是否有need只红隼,但似乎没有其他 Select ——即使是最简单的示例也使用红隼.

推荐答案

什么是红隼

这是一个成熟的网络服务器.你可以运行你的ASP.NET核心应用程序,仅使用Kestrel.

但当我运行我的网站时,我仍然会在系统托盘中看到IIS Express图标

在你的ASP.NET应用程序,可能在wwwroot目录中,您将看到一个web.包含以下内容的配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
    <handlers>
    <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>

这是HttpPlatformHandler.基本上,这会向红隼转发all个请求.IIS Express(以及IIS)将不会运行ASP.再也不用网了.相反,它们将充当代理,只需来回传递红隼的请求和响应.使用IIS仍然有好处,特别是它可以为您提供安全配置、内核级缓存等.

Asp.net相关问答推荐

域名 + 子域名在IIS部署

使用 Asp.Net MVC 和 KnockoutJS 处理日期

IE10 SCRIPT5009:__doPostBack未定义

是否可以访问位于另一个项目中的 MVC 视图?

使用 Owin 身份验证的服务器端声明缓存

IIS 将旧用户名返回到我的应用程序

SameSite 属性如何自动添加到我的 Asp.net_SessionID cookie 中?

这两种方法有什么区别?

免费的 ASP.Net 和/或 CSS 主题

如何为角色以及特定用户使用自定义授权属性?

如何使用自动生成的列隐藏 ASP.NET GridView 中的列?

ASP.Net 自定义客户端验证

ASP.NET 会话超时测试

什么是实体框架中的复杂类型以及何时使用它?

ASP.NET 中的全局资源与本地资源

我的 asp.net mvc Web 应用程序中的 OutputCache 设置.防止缓存的多种语法

在 aspnetcore (netcoreapp1.0) 中替代 System.Web.Security.Membership.GeneratePassword

将当前谷歌 map 保存为图片

asp.net core 2.0 - 值不能为空.参数名称:连接字符串

Application_Start 和 Application_OnStart 之间的区别