1) ClientApp makes async call to ASP.Net 2.0 WebService 2) Web service calls SQL Server 2005 stored procedure 3) Stored procedure returns data output, 150MB table
Out of Memory Exception is thrown by DataAdapter.Fill(...) while trying to allocate more memory for new rows.
IIS Application Pool does not have any Max Memory restrictions on it.
Are there maximum memory utilization caps set somewhere else at the IIS level? Does a 150MB db table take up a lot more space when read into memory as a DataSet? Is there a scenario (with WCF perhaps) where the result of the procedure never has to reside in web server memory but would be streamed directly to the client?
I would prefer not to have to split the request up into smaller data sets because the client requests them asynchronously. Collecting all the parts would have to happen asynchronously also, and each client would have to implement asynchronous collection for each call.
Any suggestions, best practices, or tips would be appreciated.