Can IIS serve my .NET app over the QUIC protocol?
As of August 2020, the version of IIS present in Windows 10 Version 2004 (2020-04) and Windows Server 2019 (version 19041) does support QUIC, and QUIC seems to be enabled by default:
Some caveats from my own observations:
- It only seems to be present in the full-fat IIS, and not IIS Express (but you wouldn't be using IIS Express in production anyway).
- HTTP/3 (QUIC) and HTTP/2 (SPDY) only seem to be enabled in a HTTPS binding and not in a plaintext HTTP binding.
- I might be wrong - I'm not familiar with QUIC's details.
- Note that QUIC is actually a rather low-level protocol, and that "HTTP/3" can be thought-of as "HTTP/2-over-QUIC".
- Other than the single checkbox to disable QUIC in the Binding settings page, I can't see any other way to configure QUIC in IIS.
Regarding the common scenario of using IIS as a front-end reverse-proxy (using IIS' URL Rewrite extension and Application Request Routing):
- I cannot find any information regarding support for QUIC in ARR.
- Note that the URL Rewrite Extension (which is required to use ARR) has been recently updated to version 2.1 in 2017 after being stuck at version 2.0 for almost a decade. You need to install it manually from the IIS Downloads page.
- The ARR extension is still stuck on version 3.0 which was released in 2013.
- This makes me think that ARR 3.0 won't support HTTP/2 (SPDY) or HTTP/3 (QUIC) - but at the same time, ARR makes use of the existing
HTTP.sys
stack in Windows, so it's actually possible that ARR may use HTTP/3 or HTTP/2 if available. But without an official word or tip from an insider at Microsoft it's impossible to say.
- This makes me think that ARR 3.0 won't support HTTP/2 (SPDY) or HTTP/3 (QUIC) - but at the same time, ARR makes use of the existing
Additionally, in May 2020, Microsoft announced their implementation of QUIC was open-source on GitHub: https://github.com/microsoft/msquic - if you have any further questions you may get answers to them there rather than through MS' official support channels or their never-updated IIS blog.
I did post an Issue to the MSQuic GitHub repo seeking more information and documentation for the QUIC feature, but the issue was closed as off-topic, but they did assure me that they've forwarded the question to the internal documentation team, but doing a date-range Google search shows that no new documentation for QUIC has been published by Microsoft.