Setup Logging in IIS 5.0

By Aaron Lee, Software Design Engineer,Internet Information Services Product Development Team,Microsoft Corporation

Microsoft Internet Information Services 5.0, an optional component of Windows 2000, now generates a setup log file that can be used for setup troubleshooting. The log file can be used to debug installation difficulties that are discovered after attempting to install IIS. This article explains how setup works, and how to read the log file entries.

How IIS Setup Works

IIS setup is an optional component within Windows 2000's setup and gets called by Windows 2000 setup, along with all other optional components. The optional components are all listed in the %windir%\inf\sysoc.inf file. Windows 2000's optional component manager (ocmanage.dll) loads the sysoc.inf file during setup and calls the setup dll's described in the sysoc.inf. These components get different calls during various stages of setup.

The names of the dlls are descriptive of the actions performed. For instance, OC_INIT_COMPONENT requests the dll to do its initialization routines. OC_QUEUE_FILE_OPS is called when the .dll fills its file queue with the list of files to install. OC_ABOUT_TO_COMMIT_QUEUE is called right before the files actually get copied to disk, and OC_COMPLETE_INSTALLATION is where the components' 'configuration' settings are completed.

The Iis5.log File

The %windir%\iis5.log file is simply a log of the activities of setup. Any failures within setup are reported here. The log file's operations are controlled by the setup .inf file, located at %windir%\inf. (Iis.inf is specified in the %windir%\inf\sysoc.inf). The entry in sysoc.inf that corresponds with the IIS setup looks like this:

iis=iis.dll,OcEntry,iis.inf,,7

From this entry, you can see that the IIS setup dll is iis.dll, the entry point to the dll is OcEntry and the configuration file that iis.dll uses to configure IIS is iis.inf.

An entry in the %windir%\inf\iis.inf file can be used to specifiy the level of detail in the iis5.log file. The parameter is call DebugLevel and is listed in the [SetupInfo] section. The DebugLevel can have the following numerical values:

0 – Show only errors

1 – Log warnings

2 – Trace level 1 (The least verbose option of the trace options.)

3 – Trace level 2

4 – Trace level 3

Here is an example of logging in the iis5.log file. This excerpt shows that setup is registering the asp.dll.

[10/20/1999 16:40:53] OC_COMPLETE_INSTALLATION:iis_www:ProcessSection.[register_iis_www_4].Start.

[10/20/1999 16:40:53] OC_COMPLETE_INSTALLATION:iis_www:...ProcessEntry:100=2...

[10/20/1999 16:40:53] OC_COMPLETE_INSTALLATION:iis_www:------------------

[10/20/1999 16:40:53] OC_COMPLETE_INSTALLATION:iis_www:CallProcedureInDll(C:\WINNT\System32\inetsrv\asp.dll): DllRegisterServer

[10/20/1999 16:40:54] OC_COMPLETE_INSTALLATION:iis_www:iOleInitialize: Succeeded: 0. MakeSure to call OleUninitialize.

[10/20/1999 16:40:54] OC_COMPLETE_INSTALLATION:iis_www:CallProcedureInDll: Calling 'DllRegisterServer'.Start

[10/20/1999 16:40:54] OC_COMPLETE_INSTALLATION:iis_www:CallProcedureInDll: Calling 'DllRegisterServer'.End.SUCCESS.

[10/20/1999 16:40:54] OC_COMPLETE_INSTALLATION:iis_www:------------------

Here's an example of a failure to register the asp.dll

[12/7/1999 14:24:0] OC_INIT_COMPONENT:!FAIL!

[12/7/1999 14:24:0] OC_INIT_COMPONENT:CallProcedureInDll():C:\WINNT\System32\inetsrv\asp.dll:DllRegisterServer:() FAILED.