Kbase 16943: WebSpeed 1.0 - IIS 3.0 Bug Causes Failure - Work-Around
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/5/2003 |
|
SUMMARY:
There have been several cases of customers upgrading to Microsoft Internet Information Server (IIS) 3.0 and WebSpeed 1.0 stops working.
EXPLANATION:
The problem is that for these customers, IIS 3.0 is incorrectly setting the PATH_INFO environment variable. The customers have
upgraded to IIS 3.0 in different ways - installing Service
Pack 2, installing Service Pack 3, and installing IIS
patches from Microsoft's Web Site.
** THE PROBLEM **
After upgrading to IIS 3.0, WebSpeed 1.0 may suddenly stop
working. For URL's that were previously working fine, the
browser will now report an error:
Application Error Unable to find Web object file
< path to web object >
SOLUTION:
Key to determining whether the problem is the IIS bug, is
what the "<path to web object>" part of the error message
looks like. If you used a URL like:
http://<web server>/scripts/messenger.wsc/myfile.w
and the browser error says:
Application Error Unable to find Web object file
'scripts/messenger.wsc/myfile.w'
Then the problem is with the IIS.
If the browser error says:
Application Error Unable to find Web object file 'myfile.w'
Then the problem is likely something else.
In general, if the error shows your scripts directory and messenger file in the path, this indicates a bug with IIS.
The problem occurs because the PATH_INFO environment variable
should only include the part of the URL AFTER your messenger script. IIS is incorrectly setting PATH_INFO to include everything in the URL after the web server name.
SOLUTION:
The preferred workaround is to re-install IIS 2.0.
However, if this is not possible, there is a workaround
available that will allow WebSpeed to work. One nice thing
about this solution is that even if you decide to use
another web server or if the IIS bug is fixed in the
future, WebSpeed will continue to work. Note that in the
following steps it is assumed that WebSpeed is installed in the default location C:\WSRT. You should of course, use the actual
path where WebSpeed is installed on your machine.
This workaround requires modifying the files:
C:\WSRT\src\web\objects\web-util.p and
C:\WSRT\tty\web\objects\web-util.r.
You should back up these files by copying them to files of a different name in case you ever need to restore them to their original state.
1) Open web-util.p in a text editor and search for the line:
END PROCEDURE. /* init-variables */
2) Just ABOVE this line, add the following two lines:
if (PATH_INFO begins SCRIPT_NAME) and not (PATH_INFO =
SCRIPT_NAME)
then PATH_INFO = substr(PATH_INFO,length(SCRIPT_NAME) + 1).
3) Now, open the Application Compiler (there should be an icon
in your Transaction Server program group) and compile web-util.p.
4) Finally, take the resulting web-util.r and place it in
C:\WSRT\tty\web\objects\.
The modification should take effect the next time you start
your WebSpeed broker.