IIS7 Serialzing Requests From ALL Browsers

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • michaelpyles
    New Member
    • Aug 2007
    • 3

    IIS7 Serialzing Requests From ALL Browsers

    I have an ASP page the has session state disabled. This page creates an instance of a COM component written in C++ (threading model is BOTH, using ATL-FREE_THREADED macro in stdafx.h, supports free threaded marshaller). The COM component streams files to the ASP response buffer.
    This component was created to support downloads of multi-gigabyte files. (Yes.. I know not the best answer but what the client requested.) I added a throttle in the COM component so as not to cause the ASP DLL to use up too much memory.
    SO.... when testing, I've discovered that while this page is executing, ALL requests from ALL browsers are blocked. It appears the entire thread pool is blocked. After response.end, queued requests are serviced.
    No other page uses this download component. However, I do have another free threaded component that every other page uses. I haven't test this possibility yet, but I'm wondering if IIS is trying to marshall all COM interface requests for both my components through the free threaded "apartment" (basically queuing them to a single thread used to execute free threaded components). That would explain how all requests would be blocked. However having the threading model set to BOTH and support for the free threaded marshaller should prevent this... right? Any suggestions?
  • michaelpyles
    New Member
    • Aug 2007
    • 3

    #2
    I've traced the freeze out of all requests to be a limitation of IIS7 on Vista. On 2003 Server now IIS is multithreading requests from different users for the same web site.

    HOWEVER, I'm now working on enabling the user that is doing the file download, to be able to continue working while the file is being transferred. I am using the ASP directive ENABLESESSIONST ATE=FALSE at the top of the download asp page. This page instantiates my C++ file streamer. I've also eliminated the use of the OBJECT tag to instantiate a persistent session object. Unfortunately, IIS is still serializing requests so the user is locked until the Reponse.End is issued for the download page (which is done from inside the C++ component). I'm thinking there is something else that I'm unaware of that's causing IIS to serialize requests for this user (session), even though I have included the ENABLESESSIONST ATE=FALSE directive at the top of the ASP page. Any suggestions?

    Comment

    • jhardman
      Recognized Expert Specialist
      • Jan 2007
      • 3405

      #3
      moved to .NET forum, although I admit it might be an IIS issue.

      Jared

      Comment

      Working...