【发布时间】:2016-02-04 11:53:49
【问题描述】:
我正在评估 ASP.NET Core 应用程序的各种托管选项。
在新的 ASP.NET 编程模型中,您使用一组中间件(混合了旧的 IHttpModule 和 IHttpHandler)来处理请求。
您可以拥有一个中间件,它可以负责身份验证、处理静态文件或在发送前压缩响应(仅举几例)。 混乱来了。
在职责范围内在哪里设置服务器和应用程序之间的边界?
哪一方应该负责压缩响应?使用 IIS,这由服务器处理并在 web.config 中进行配置。 Kestrel 不提供此功能 AFAIK,因此您需要在应用程序中实现一个自定义中间件,该中间件将为您处理此问题。哪个更合适?
身份验证呢? IIS 提供身份验证设置(匿名、模拟、表单身份验证)。相反,在 ASP.NET Core 中我们也可以编写一个应用程序中间件来为我们处理这个问题。
好的,SSL 由服务器处理,因为它位于协议层的下方,并且应用程序仅在 HTTP(S) 上运行。
服务器应该有什么责任?应用应承担哪些责任?
【问题讨论】:
标签: asp.net iis asp.net-core kestrel-http-server