Apparently if the connection isn't using WebSockets (or I am guessing any similar supported technology), we get an instance for every send() from the client. If we don't use a static collection to keep track of the processes we will end up with a new process for every client send(). I will change the dictionary to ConcurrentDictionary.