(Colonel Kernel)
12/26/2002 3:17:00 AM
I'm working on an ASP.NET Web Service that returns a very large amount
of data to callers. In order to reduce memory utilization by
simulating "streaming", this data is represented as an object that
implements IEnumerable, and the WebMethods that return it have
buffering disabled. This works great for the ASP.NET worker process,
but IIS itself (inetinfo.exe) seems to try and buffer everything. With
enough callers requesting this data all at once, this could cause
virtual memory to become exhausted. So, I have a few questions:
* Is there some way to control the size of the buffer kept by IIS
itself?
* Can anybody explain how inetinfo.exe and aspnet_wp.exe actually
interact in terms of where the response data goes? I had originally
assumed that aspnet_wp.exe would communicate directly with clients,
but I guess it needs to go through IIS using some form of IPC...
details on this would be helpful!
If anybody is interested in code that reproduces this behaviour, I can
provide it upon request.