unknown method handler no longer needs to complete request stream
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index db1b869..4f510ba 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -107,6 +107,7 @@
 
                 call.StartSendStatusFromServer(status, HandleHalfclosed);
                 halfcloseRequested = true;
+                readingDone = true;
                 sendCompletionDelegate = completionDelegate;
             }
         }
diff --git a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
index f494d9e..c0e5bae 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
@@ -267,8 +267,6 @@
             var responseStream = new ServerResponseStream<byte[], byte[]>(asyncCall);
 
             await responseStream.WriteStatusAsync(new Status(StatusCode.Unimplemented, "No such method."));
-            // TODO(jtattermusch): if we don't read what client has sent, the server call never gets disposed.
-            await requestStream.ToList();
             await finishedTask;
         }
     }