Hi @andyp ,
Did all other requests return 0 bytes like favicon.ico request?
It more like the cause described in this docs. When compression is enabled on a server running IIS, and an HyperText Transfer Protocol (HTTP) request is served from the IIS compression directory, a 0-byte file may be returned instead of the expected file. You may only see these symptoms if HTTP Static Compression is enabled.
In these situations, http/2.0 is not supported on IIS. Windows will fall back to HTTP/1.1 and continue the transaction.
- Windows authentication (NTLM/Kerberos/Negotiate) is not supported with HTTP/2. In this case IIS will fall back to HTTP/1.1.
- Clear textas mentioned above, IIS currently only supports HTTP/2 over TLS. Again, IIS will fall back to HTTP/1.1.
- Bandwidth throttling - IIS has a feature to limit bandwidth (in Inetmgr, select the site, 'Limits' under Configure of the Action pane). This applies to HTTP/1.1 but is not enforced for HTTP/2 (will proceed with no errors or bandwidth limiting).
According to the docs about ISAPI and http/2, there's nothing need to set about http/2. If you use ISAPI to get http/2, the library was written a long time ago, and was writing the headers and body using the WriteClient method. You need to refactor the code to use the ServerSupportFunction with the HSE_REQ_VECTOR_SEND request function to write headers and body.
Please enable failed request tracing to check the process of response.
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.
Best regards,
Bruce Zhang