I'm writing an ASP.NET page intended for multiple users. On the backend we have datatypes that are primarily mathematical, and interact with Mathematica for string-to-double evaluations, among others. We need to make these evaluations up to 100 times per second per user, for up to 100 users, say. But every time we use NETLink to create a new kernel connection, a new instance of the Mathematica kernel opens on the host machine. 10,000 copies of the Mathematica kernel on a single machine is obviously undesirable.
If we were guaranteed to have one user, it might work to create a global kernel and use that -- but if we have 100 users, that would create 100 kernels, which is still excessive. Is there a nice workaround for this? Perhaps a way to use .NETLink to a kernel that's already opened?