For testing purposes I have been trying to get isapi_redirector.dll (from
4.0.3) to work under the Windows .NET Enterprise Server Beta 3 that contains
IIS 6.

In am running Tomcat 4.0.4-b2-01.

Configuration was not a problem.

Requests for static objects appear to work fine.

However requests for JSP produced (HTML) content do not. 

The requested JSP produced page is returned to the browser .. the browser
does display the returned page .. however the browser continues to 'spin'
the globe .. waiting for the page to be 'complete' .. the body onload
handler is never called.

In file: 

        
C:\Apache\jakarta-tomcat-connectors-4.0.4-b2-src\jk\native\iis\jk_isapi_plug
in.c

at line 870 .. the code sets the return status for the HttpExtensionProc
routine to:

    HSE_STATUS_SUCCESS_AND_KEEP_CONN

In the MS documentation it explcitly states:

    The application should only return this if it was able to send 
    the correct content-length header to the client. 

For JSP produced content .. as far as I am aware .. there is no content
length header returned.

I changed the code at line 870 to always return:

    HSE_STATUS_SUCCESS

and the redirector started working w/o problems .. the browser stopped
spinning the globe after the page was received .. the body onload handler
was called .. no more problems.

It seems as though the isapi redirector .. at least for IIS 6 anyway ..
needs to know whether a content length is being returned in the response
before it can decide which status code to return.

Why this behaviour is different from IIS 5 is not clear.

Any comments ?

Lenny Karpel

PS.  I tested this mod against the 3.3 isapi_redirect code .. I could not
get any of the projects in the 4.0.4-b2 connectors zip to work properly.

Reply via email to