mssrv.txt - Information on Microsoft Servers
This file is part of WebRSH 1.1b (beta)
Copyright (C) 1997,1998  Yoram Last (ylast@mindless.com)

This file contains information specific to running WebRSH with Microsoft's native
servers on Win32. These include the "Personal Web Server 1.0a for Windows 95" and
versions up to and including 3.0 of IIS/PWS for WinNT. I do not have any personal
experience at all with version 4.0 of those servers, but from what I hear there
are some additional issues you would need to learn about elsewhere. Note that this
file only points out some specific issues. It does NOT attempt to provide
comprehensive coverage of everything you need to know in order to use those servers
effectively. For further information, you should check your server's documentation.
Win95 users can learn a lot about their server by looking at the NT IIS 2.0
documentation (which should be attainable from http://www.microsoft.com), since the
servers are very similar, but the Win95 variant comes with almost no documentation
of its own.

Note that Microsoft's servers work well and the WinNT variants have a capability
which is not found on most other servers: to spawn CGI processes in the security
context of the (natively authenticated) user who is running them. This is usually
the best way for running WebRSH, and thus these servers are the recommended way of
doing that on WinNT (this issue is totally irrelevant for Win95). Unfortunately,
Microsoft's servers are tricky to deal with, particularly for CGI purposes, since
most of their configuration is done by directly editing registry entries. If you
are deterred by the idea of having to directly edit the registry, we recommend that
you use some other server to run WebRSH. Otherwise, please note the following
remarks:

1. If you will be using the PWS on Win95, you should set WebRSH to run as a full
  console process through the supplied spnh.exe program (it is included here
  specifically for this purpose). Please look at the supplied 'spnh.readme.txt'
  file for information on how to do that. Note that WebRSH is capable of working
  without it, but then you will get visible console windows jumping on your screen.

2. Most (although, unfortunately, not all) of the registry keys related to the web
  server's configuration are in the key:
  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3Svc\Parameters
  You should be aware of the following particular values in that key:
  (they should be of DWORD type. If any of them is missing it's equivalent to having
   it set to its default value. You can always create it if necessary.)

  CreateProcessAsUser : This plays no role on Win95. On WinNT, setting it to 1
    causes CGI processes to get spawned in the security context of the (natively
    authenticated) user who is running them. We recommend that it would be set
    1 (which is also the default). This is essentially a must if you want to use
    WebRSH in a multi-user fashion and to allow some sort of a user population
    (not just administrators) to access it. Otherwise, WebRSH will get run in the
    security context of the local system, which means unlimited access to the local
    server.

  CreateProcessWithNewConsole : This shouldn't exist (or be 0) on Win95. On WinNT
    it is better for WebRSH to have this set to 1, and to have the corresponding
    option box on the bottom of WebRSH's 'General Preferences' options setting
    form checked. However, if all your other CGI scripts can do without the console,
    keeping it set to 0 (which is the default) can significantly improve performance.

  (Specific remark to IIS 4.0 users: I was informed by a WebRSH user that in order
   to modify such settings in IIS 4.0 you need (after you set the registry?) to run
   some command line utility that enters this data into some non-registry database,
   and that in order to modify the 'CreateProcessWithNewConsole' option, the
   parameter you need to specify is 'CreateCgiWithNewConsole' (note the difference!)
   This is all I know about IIS 4.0 at this time.)

3. In order to run scripts (particularly, CGI scripts) with Microsoft's servers,
  the relevant file extensions need to have appropriate associations with the
  right interpreters. These associations are disjoint from the normal windows
  associations and are done in the registry key
  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3Svc\Parameters\Script Map
  For each extension, you need a (string type) registry value having the extension
  as its name and the interpreter (usually followed by '%s %s' for CGI scripts) as
  its content. You should be aware of the difference between CGI and ISAPI. If you
  installed the popular PerlIS.dll ISAPI interpreter from ActiveState, you are likely
  to have the .pl extension already associated with it. However, WebRSH must be run
  as a CGI process, which means that it needs to be associated with your 'perl.exe'.
  You might need to either change your current association of the .pl extension or to
  associate a new extension (such as .plc) with 'perl.exe' and later rename your
  WebRSH script accordingly. Further relevant information can be found in the file
  'spnh.readme.txt'. Note that spnh works ONLY ON Win95, but the related information
  can also help clarify things to WinNT users.

