IIS 可以通过 QUIC 协议为我的 .NET 应用程序提供服务吗?

Jon*_*ica 7 iis .net

我们有一个超级健谈 (ajax) html 5 应用程序(其结构类似于 gmail,大量 js)。

QUIC的阅读听起来很有趣。 https://en.wikipedia.org/wiki/QUIC

IIS(或任何 .NET 托管引擎)可以支持 QUIC 吗?

如果 IIS/Win 不能做,我可以在 IIS 前面的 haproxy 实例(在 CentOS 上)做吗?

Dai*_*Dai 7

截至 2020 年 8 月,Windows 10 Version 2004 (2020-04) 和 Windows Server 2019(version 19041)中的 IIS 版本确实支持 QUIC,并且 QUIC 似乎默认启用:

在此处输入图片说明

我自己观察的一些警告:

  • 它似乎只存在于全脂 IIS 中,而不存在于 IIS Express 中(但无论如何您都不会在生产中使用 IIS Express)。
  • HTTP/3 (QUIC) 和 HTTP/2 (SPDY) 似乎只在 HTTPS 绑定中启用,而不是在明文 HTTP 绑定中启用。
    • 我可能是错的 - 我不熟悉 QUIC 的细节。
    • 请注意,QUIC 实际上是一个相当低级的协议,“HTTP/3”可以被认为是“HTTP/2-over-QUIC”。
  • 除了在绑定设置页面中禁用QUIC的单个复选框之外,我看不到在 IIS 中配置 QUIC 的任何其他方法。

关于使用IIS作为前端反向代理的常见场景(使用IIS的URL Rewrite扩展和Application Request Routing):

  • 我在 ARR 中找不到有关支持 QUIC 的任何信息。
  • 请注意,在停留在 2.0 版本近十年之后,URL 重写扩展(使用 ARR 需要)最近在 2017 年更新到了 2.1版本。您需要从 IIS 下载页面手动安装它
  • ARR 扩展仍然停留在 2013 年发布的 3.0 版上。
    • 这让我觉得 ARR 3.0 将不支持 HTTP/2 (SPDY) 或 HTTP/3 (QUIC) - 但同时,ARR 使用了HTTP.sysWindows 中现有的堆栈,所以实际上ARR 可能会使用 HTTP /3 或 HTTP/2(如果可用)。但是如果没有微软内部人员的官方消息或提示,就不可能说出来。

此外,在 2020 年 5 月,微软宣布他们在 GitHub 上实现 QUIC 是开源的https : //github.com/microsoft/msquic - 如果您有任何其他问题,您可以在那里获得答案,而不是通过 MS 的官方支持频道或其从未更新的 IIS 博客。


我确实向 MSQuic GitHub 存储库发布了一个问题,以寻求有关 QUIC 功能的更多信息和文档,但该问题已作为题外话关闭,但他们确实向我保证,他们已将问题转发给内部文档团队,但正在做一个日期范围的谷歌搜索显示微软没有发布 QUIC 的新文档。