public async Task DuplexStreamingServerHandler(IAsyncStreamReader <TRequest> requestStream, IServerStreamWriter <TResponse> responseStream, DuplexStreamingServerMethod <TRequest, TResponse> continuation) { try { var tracingRequestStream = new TracingAsyncServerStreamReader <TRequest>(requestStream, _context, _tracer.Request); var tracingResponseStream = new TracingServerStreamWriter <TResponse>(responseStream, _context, _tracer.Response); await continuation(tracingRequestStream, tracingResponseStream, _context).ConfigureAwait(false); _tracer.Finish(_context); } catch (Exception ex) { _tracer.Exception <object>(_context, ex); throw; } }
public async Task ServerStreamingServerHandler(TRequest request, IServerStreamWriter <TResponse> responseStream, ServerStreamingServerMethod <TRequest, TResponse> continuation) { try { var tracingResponseStream = new TracingServerStreamWriter <TResponse>(responseStream, _context, _tracer.Response); _tracer.Request(request, _context); await continuation(request, tracingResponseStream, _context).ConfigureAwait(false); _tracer.Finish(_context); } catch (Exception ex) { _tracer.Exception(_context, ex, request); throw; } }