diff --git a/src/csharp/Grpc.Core.Tests/AppDomainUnloadTest.cs b/src/csharp/Grpc.Core.Tests/AppDomainUnloadTest.cs
index 60aae0e1e573f32fcc3ffafe6ee0575b4bd16553..e605a310f9ef40122dbd70ec5d3937267b4b1c5d 100644
--- a/src/csharp/Grpc.Core.Tests/AppDomainUnloadTest.cs
+++ b/src/csharp/Grpc.Core.Tests/AppDomainUnloadTest.cs
@@ -70,13 +70,6 @@ namespace Grpc.Core.Tests
             /// </summary>
             public AppDomainTestClass()
             {
-                AppDomain.CurrentDomain.DomainUnload += (object sender, EventArgs e) =>
-                {
-                    var shutdownChannelsTask = GrpcEnvironment.ShutdownChannelsAsync();
-                    var killServersTask = GrpcEnvironment.KillServersAsync();
-                    Task.WaitAll(shutdownChannelsTask, killServersTask);
-                };
-
                 var helper = new MockServiceHelper(Host);
                 var server = helper.GetServer();
                 server.Start();
diff --git a/src/csharp/Grpc.Core.Tests/ShutdownHookClientTest.cs b/src/csharp/Grpc.Core.Tests/ShutdownHookClientTest.cs
index 32c9d8034a5b0a526729ab814cd307936a5cb2b8..12b8452f64f9da3157bfc1ffea8f92247304f9b5 100644
--- a/src/csharp/Grpc.Core.Tests/ShutdownHookClientTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ShutdownHookClientTest.cs
@@ -52,11 +52,6 @@ namespace Grpc.Core.Tests
         {
             var channel = new Channel(Host, 1000, ChannelCredentials.Insecure);
             var channel2 = new Channel(Host, 1001, ChannelCredentials.Insecure);
-            AppDomain.CurrentDomain.ProcessExit += (object sender, EventArgs e) =>
-            {
-                GrpcEnvironment.ShutdownChannelsAsync().Wait();
-            };
         }
-        // TODO: test what happens if there's an appdomain unload 
     }
 }
diff --git a/src/csharp/Grpc.Core.Tests/ShutdownHookPendingCallTest.cs b/src/csharp/Grpc.Core.Tests/ShutdownHookPendingCallTest.cs
index 7f3f493a4811f3f41f8c7ae7f6d3461639ffa805..175233840de8650fe497795041ce891c6a783647 100644
--- a/src/csharp/Grpc.Core.Tests/ShutdownHookPendingCallTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ShutdownHookPendingCallTest.cs
@@ -50,13 +50,6 @@ namespace Grpc.Core.Tests
         [Test]
         public void ProcessExitHookCanCleanupAbandonedCall()
         {
-            AppDomain.CurrentDomain.ProcessExit += (object sender, EventArgs e) =>
-            {
-                var shutdownChannelsTask = GrpcEnvironment.ShutdownChannelsAsync();
-                var killServersTask = GrpcEnvironment.KillServersAsync();
-                Task.WaitAll(shutdownChannelsTask, killServersTask);
-            };
-
             var helper = new MockServiceHelper(Host);
             var server = helper.GetServer();
             server.Start();
diff --git a/src/csharp/Grpc.Core.Tests/ShutdownHookServerTest.cs b/src/csharp/Grpc.Core.Tests/ShutdownHookServerTest.cs
index b223f5ee02c00e2d6baa527959583b91068276be..e7ea7a0bf5977a3648e57a76b3371c375de9027b 100644
--- a/src/csharp/Grpc.Core.Tests/ShutdownHookServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ShutdownHookServerTest.cs
@@ -53,12 +53,6 @@ namespace Grpc.Core.Tests
             var helper = new MockServiceHelper(Host);
             var server = helper.GetServer();
             server.Start();
-            AppDomain.CurrentDomain.ProcessExit += (object sender, EventArgs e) =>
-            {
-                var shutdownChannelsTask = GrpcEnvironment.ShutdownChannelsAsync();
-                var killServersTask = GrpcEnvironment.KillServersAsync();
-                Task.WaitAll(shutdownChannelsTask, killServersTask);
-            };
         }
     }
 }