People generating dynamic Excel data and using MS IIS may hit this problem. I've 
posted it because it affects cocoon users, even
though its not really anything to do with cocoon.

Environment
-----------
MS IIS v5 web server with dynamic content redirected to tomcat/cocoon.


Problem
-------
Some client PC's see cocoon generated excel data correctly (data shown in an Excel 
spreadsheet inside the IE window), but other PC's
get the applications "session timed out" HTML page displayed inside Excel!
I'm not sure if its related to the version of IE, but I sometimes had the problem with 
IE5 and sometimes didn't have
it with IE6.
The problem goes away if the client bypasses IIS by using tomcat's port 8080.


Solution
--------
Disable webdav in IIS v5 by adding an entry to the registry. Put the following in a 
*.reg file then double click it.

REGEDIT4
; Disable WebDAV for IIS 5.0 - see 
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q241520&;
; otherwise some IE browser's perform a WebDAV LOCK on the URL after downloading an 
Excel spreadsheet.
; Cocoon seems to treat the LOCK as a GET, but since the request has no sessionID it 
redirects to the
; SessionTimedOut page.
; If you need WebDAV then removing NTFS write access from all files and dirs in the 
application should
; also work.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters]
"DisableWebDAV"=dword:00000001


Cause
-----
WebDAV allows you to use your web browser to open/lock/write files served by a web 
server.
In IIS5 WebDAV is always enabled for any files/dirs that have NTFS write permission 
unless you disable it using regedit.

IIS & cocoon logs show that when some versions of IE download a cocoon generated excel 
spreadsheet they do this:

METHOD: POST on URL /cocoon/pinnacle/asReportByType.xsp
this generates the excel data

METHOD: OPTIONS (an HTTP 1.1 method) on URL /cocoon/pinnacle
since I've configured only *.xsp to be redirected IIS responds.
IIS must say something about whether the URL is WebDAV editable.

METHOD: LOCK (a WebDAV extension to HTTP 1.1) on URL 
/cocoon/pinnacle/asReportByType.xsp
This request is generated by the browser, but it has no session and has a header:
  user-agent=Microsoft Data Access Internet Publishing Provider DAV 1.1

Cocoon logs the method as LOCK but treats it the same as a GET (and my application 
doesn't check the method).
Since there's no session my application redirects to the session timed out page.
This page gets displayed inside Excel instead of the Excel report.


---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to