diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs
index 169de5a7800ff58bb4af46d4b172996bf9e00948..0b6981f871dd0abc7d8231af863efae45561857f 100644
--- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs
@@ -54,7 +54,14 @@ namespace Grpc.Core.Internal.Tests
         public void Init()
         {
             var environment = GrpcEnvironment.AddRef();
-            server = new Server();
+
+            // Create a fake server just so we have an instance to refer to.
+            // The server won't actually be used at all.
+            server = new Server()
+            {
+                Ports = { { "localhost", 0, ServerCredentials.Insecure } }
+            };
+            server.Start();
 
             fakeCall = new FakeNativeCall();
             asyncCallServer = new AsyncCallServer<string, string>(
@@ -67,6 +74,7 @@ namespace Grpc.Core.Internal.Tests
         [TearDown]
         public void Cleanup()
         {
+            server.ShutdownAsync().Wait();
             GrpcEnvironment.Release();
         }