I would suggest that if you do not require a response from the stream that I accept, you do not, you put it in the queue on your db, and then create a service to process the queue. When the re request is created, create your unique key and transfer it to the database, and then get this service. the service can then process the data without worrying that your threads are dead, and then you can also control traffic and load using the service.
We have a transfer mechanism that works on a similar principle, and ultimately it makes this material a lot easier.
If you need to report the data back, you just need to wait until the finished report or the data will be saved in the database, and then the asp.net application can take care of the rest.
source share