I have an iPad client application that are installed in around- 3000 - 4000 iPads. They are available in remote areas and are talking to a web service for submitting the data they collect. The data submission call from the iPads may happen together. I have one single server where all the data is stored in SQL server. The web services are written in .NET and are hosted in IIS 7.
Currently the iPad application does not work as expected as the web services are not able to handle that many requests simultaneously.
What is the best possible way to handle this scenario? Is the delay/scalability issue caused by DB access? Can an in-memory caching at web-service side solve the issue?
I am not in a position to invest in a separate server. So would like to know the best solution for handling as many requests together. The DB insertion can be done asynchronously. Most important task is to bring the data collected on iPads to server.