You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using the gRCP client works as expected as long as there is no proxy running (like Fiddler Everywhere), as soon as I start Fiddler Everywhere which supports HTTP 2 and gRPC capturing, we get an exception (see the section What did you see instead?),
is the configuration of the grpc client registration correct?
I would expect that the gRPC call successfully runs through the proxy and finally returns the result.
What did you see instead?
I see the following exception (note that 127.0.0.1:8866 is the address of fiddler, so the call is forwarded to the proxy)
Connectionid"0HMT23GS5CF6U", Request id "0HMT23GS5CF6U:00000001":Anunhandled exception was thrown by the application.
Error: Grpc.Core.RpcException: Status(StatusCode="Internal",Detail="Error starting gRPC call. HttpRequestException: Unable to get subchannel from HttpRequestMessage. (127.0.0.1:8866) InvalidOperationException: Unable to get subchannel from HttpRequestMessage.",DebugException="System.Net.Http.HttpRequestException: Unable to get subchannel from HttpRequestMessage. (127.0.0.1:8866)")---> System.Net.Http.HttpRequestException: Unable to get subchannel from HttpRequestMessage.(127.0.0.1:8866)---> System.InvalidOperationException: Unable to get subchannel from HttpRequestMessage.
at Grpc.Net.Client.Balancer.Internal.BalancerHttpHandler.OnConnect(SocketsHttpConnectionContextcontext,CancellationTokencancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(Stringhost,Int32port,HttpRequestMessageinitialRequest,Booleanasync,CancellationTokencancellationToken)
Note: using HttpClientHandler instead of SocketsHttpHandler does not cause an exception and the result from the gRPC call is returned correctly.
However the gRPC call is not captured by Fiddler and it is not an option, because the HttpClientHandler does not provide properties like PooledConnectionIdleTimeout , EnableMultipleHttp2Connections , KeepAlivePingPolicy, ...
Any help would highly be appreciated.
The text was updated successfully, but these errors were encountered:
What version of gRPC and what language are you using?
Grpc.Net.Client/Grpc.Net.ClientFactory 2.53.0, C#
What operating system (Linux, Windows,...) and version?
Windows 10 Enterprise (22H2)
What runtime / compiler are you using (e.g. .NET Core SDK version
dotnet --info
).Net 7.0.400,
What did you do?
We are creating a grpc client as described here: https://learn.microsoft.com/en-us/aspnet/core/grpc/netstandard?view=aspnetcore-7.0.
Using the gRCP client works as expected as long as there is no proxy running (like Fiddler Everywhere), as soon as I start Fiddler Everywhere which supports HTTP 2 and gRPC capturing, we get an exception (see the section What did you see instead?),
is the configuration of the grpc client registration correct?
What did you expect to see?
I would expect that the gRPC call successfully runs through the proxy and finally returns the result.
What did you see instead?
I see the following exception (note that 127.0.0.1:8866 is the address of fiddler, so the call is forwarded to the proxy)
This issue seems very similar: #2116
Note: using HttpClientHandler instead of SocketsHttpHandler does not cause an exception and the result from the gRPC call is returned correctly.
However the gRPC call is not captured by Fiddler and it is not an option, because the HttpClientHandler does not provide properties like PooledConnectionIdleTimeout , EnableMultipleHttp2Connections , KeepAlivePingPolicy, ...
Any help would highly be appreciated.
The text was updated successfully, but these errors were encountered: