Hello, a question about the keepalive connection pool used by fiddler:
If a request fails, is there an automatic retry using another/ a new connection?
I have a problem with connections closing unexpectedly in .net framework,
yet running Fiddler seemingly fixes the problem.
This is why I am wondering if Fiddler implements an automatic retry if a request fails - this would explain the "fix".
Thank you in advance for your input!
and is does not answer this specifically
We provided insights in the linked blog post (about the possibilities for Fiddler Classic) and through our internal communication (for Fiddler Everywhere), but I will also repost my answers here so that the community can have access to them as well.
Fiddler Classic might create a new connection if the client didn't receive a response and the server closes or resets the connection. See this forum thread on how to explicitly configure Fiddler (through FiddlerScript) to set the retry mode. For example:
CONFIG.RetryOnReceiveFailure = RetryMode.Never.
No, Fiddler Everywhere is not making automatic retries explicitly.
thank you for your detailed answer.
Now I'm left wondering, whether the default behaviour of the connection pool that is described in the "help - fiddler fixes my app"-page is different to simple .net http-client connections.
Is there any kind of check if the connection is still available before the request is sent?
Unless the .NET http-client is being explicitly set to disable keep-alive then its default configuration tries to reuse connections.
What Fiddler does change is explained in the following section of the blog post:
Fiddler maintains a “connection pool” of idle keep-alive connections to the server. When the a client request comes in, this pool is first checked to determine if an existing connection is available on which the request can be sent. Even if the client specifies a Connection: close request header, that only causes Fiddler to close the client’s connection after the response is sent—the server connection is returned to the pool (unless it too disabled keep-alive).
The above means that even if your client application is disabling keep-alive (through connection: close), Fiddler will still reuse the open connection to the server from the so called connection pool. So you could expect different behavior in case the http-client is explicitly set to close the connections before the Fiddler's "connection pool" does it (which remains open for approximately 200 seconds).