# Microsoft Personal Web Server 4.0 Release Notes

This document contains information about new features, important product considerations, and installation instructions for Microsoft® Personal Web Server (PWS). The following sections are included:

Welcome to Personal Web Server 4.0
Product Comparison: PWS for Windows 98 and PWS for Windows NT Workstation
Installing PWS 4.0
Product Documentation
Other Known Problems and Limitations
Troubleshooting
Providing Feedback

# Welcome to Personal Web Server 4.0

Welcome to Personal Web Server! In the Personal Web Server package, Microsoft has pulled together some exciting new functionality that makes Microsoft® Windows 98® an even easier platform to use for sharing information on a personal Web site.

The Personal Web Server package makes it easy to install any of the following new features:

Microsoft Personal Web Server 4.0
  A desktop Web server that can be used to host a Web site on the corporate intranet, or to develop and test a Web site before hosting the site on an Internet Service Provider (ISP).
Microsoft FrontPage Server Extensions
  Supports the use of Microsoft® FrontPage® to manage your Web site, as well as create the site content.
Microsoft Transaction Server 2.0
  Supports creation of Microsoft® Transaction Server (MTS) applications. A transaction is a server operation that succeeds or fails as a whole, even if the operation involves many steps. MTS also supports process isolation of applications.
Microsoft Data Access Components 1.5
  Easy use of databases with support for ActiveX™ Data Objects and the Microsoft® Access driver.
Message Queue Server 1.0
  Makes it easy for application programs to communicate with other application programs quickly, reliably, and asynchronously by sending and receiving messages. The key features of Message Queue Server (MSMQ), such as ActiveX support, comprehensive security controls, powerful administration tools, extensive feature set, and integration with strategic Microsoft products such as Internet Information Server and MTS, make MSMQ the message queuing product of choice for applications running on Windows 95, Windows 98, and Windows NT. The Personal Web Server package includes the MSMQ Dependent and Independent Clients.

# Product Comparison: PWS for Windows 98 and PWS for Windows NT Workstation

PWS for Windows 98provides a graphical administration interface designed for users with no prior experience creating and administering Web sites. This interface is also provided as the default administration tool in Personal Web Server for Microsoft® Windows NT® Workstation; however, with the Windows NT Workstation version, you can also administer your personal publishing site with Internet Service Manager, the same full-featured administration tool used to control Microsoft Internet Information Server.

Product Comparison
Feature | PWS for Windows NT Workstation | PWS for Windows 98
--- | --- | ---
Typical Uses | Full-featured site development or personal publishing on a corporate intranet | Personal publishing on a low-volume corporate intranet
WWW Service | Yes | Yes
FTP Service | Yes | No
Connection Limit | 10 | 10
Active Server Pages | Yes | Yes
Site Use Logging | NCSA Log File Format (default) MSCSV standard and extended (optional) | NCSA Log File Format
Publishing Sources | Local and network drives | Local drives only
Optional ISM Interface | Yes | No
Authentication | Basic or Windows NT Challenge/Response | None

# Installing PWS 4.0

These are the system requirements for the installation of PWS.

Hardware Component | Requirement | Recommendation
--- | --- | ---
Processor | 33 MHz 486 | 90 MHz Pentium®
RAM | 16 MB | 20 - 32 MB
Free hard disk space | 30 MB | 40 MB
Monitor | VGA | Super VGA

On Windows 98, PWS offers the following three installation options:

- Minimum install The minimum necessary components to operate PWS.
- Typical install Minimum options plus additional functionality and documentation.
- Custom install Presents all possible components as options, with all options included in the minimum and typical installations pre-selected.

The following table describes the available options for each type of installation. An X in the Min. column indicates options included by default in the Minimum Install option. An X in the Typ. column indicates additional options included in the Typical Install option. Options without an X in either column are available as selections in the Custom Install option.

Min. | Typ. | Components and Sub-components
--- | --- | ---
| X | FrontPage Server Extensions Supports the use of Microsoft® FrontPage® to manage your Web site, as well as create the site content.
| X | FrontPage Server Extension Files
|  | Connection Manager Administration Kit
|  | Product Documentation
|  | Connection Manager Administration Kit Documentation
|  | Getting Started Documentation
X |  | Microsoft Data Access Components Easy use of databases with support for ActiveX Data Objects and the Microsoft Access driver.
X |  | Data Sources
X |  | Jet and Access
|  | Oracle
X |  | SQL Server
X |  | MDAC: ADO, ODBC, and OLE DB
|  | ADO Documentation
X |  | MDAC Core Files: ADO, ODBC, and OLE DB
X |  | Remote Data Service
X |  | RDS Core Files
|  | RDS Docs
|  | RDS Samples
|  | RDS v1.1 Files
|  | Microsoft Message Queue Allows applications to pass along transaction notification and continue processing without waiting for confirmation that the transaction has completed.
|  | HTML Documentation
|  | Microsoft Message Queue Client
|  | Software Development Kit
X |  | Personal Web Server A Web server that uses TCP/IP to host a Web site on a corporate intranet.
X |  | Common Program Files
| X | Documentation
|  | Active Server Pages
| X | Common Documentation Files
| X | PWS Administrator Documentation
X |  | Personal Web Manager
X |  | World Wide Web Server
X |  | Transaction Server Supports creation of Microsoft Transaction Server applications. A transaction is a server operation that succeeds or fails as a whole, even if the operation involves many steps. MTS also supports process isolation of applications.
X |  | Transaction Server Core Components
X |  | Transaction Server Core Documentation
|  | Transaction Server Development
|  | Transaction Server Development
|  | Transaction Server Development Documentation
|  | Visual Basic Transaction Server Add-In
|  | Visual InterDev RAD Remote Deployment Support Enables the remote deployment of applications on your Web server by using Microsoft® Visual InterDev™.
|  | Visual InterDev RAD Remote Deployment Support

To install Personal Web Server

See Troubleshooting for more information.

The Windows® 98 CD includes Personal Web Server (PWS); however, PWS requires a separate setup step to be fully installed and configured. To install PWS, you will need the Windows 98 CD, and you will need to follow these steps:

1. Insert your Windows 98 CD in its drive.
2. Click Start and then click Run.
3. In the Run dialog box, type x:\add-ons\pws\setup.exe
4. Substitute the letter of your CD drive for x, and click OK.
5. Follow the directions in Personal Web Server setup.

# Product Documentation

All documentation for the product is available online. You can view the Help topics by clicking Start and pointing to the program group where the product is installed, or by using the Help menu of the administration tool. Context-sensitive help is also available by pressing the F1 key while viewing a property sheet or dialog box.

## Using the Documentation

Please observe the following guidelines when using the online documentation:

- If you click the print icon in the Option Pack product documentation Contents frame and select the option Print everything contained in the current heading, you may experience a temporary performance degradation on the server if the selected section contains a large number of topics. (For this reason, the option Print everything in the contents is not available with this release.)

Pages printed by using the Contents print icon will not include graphics or linked documents. Also, the Contents print icon does not work in conjunction with the sample scripts and programs found in the Developer Samples section of the PWS documentation. If you select a topic in the Developer Samples section and click the Contents print icon, you will receive an error message indicating that the file cannot be found.

An alternative way to print individual topics is to right-click a topic and then click Print.

- If Internet Explorer displays an HTTP 1.1/404 Object Not Found error message when viewing your are attempting to view the documentation, then the file(s) that you are attempting to view may not have been installed during setup. To install the file(s), run Setup again and choose the appropriate documentation option.

- The WWW service must be installed and the server must be running in order to view the documentation (with the exception of the release notes and troubleshooting files). If Web Site is stopped, when you click Product Documentation you will get an error message saying "A connection with the server could not be established." If you get this error, start Personal Web Manager and check the status of the Web Site; if stopped, then start the service.

- Most navigation of the documentation occurs in the left frame. To view the table of contents, click the Contents button. Click a heading to view the pages that contain summaries of the information included in that section of the contents tree. Expand and collapse branches of the contents tree to view or hide topic sections.

- To view the index, select the Index property sheet in the left frame. Type a word to advance to the portion of the index that is closest to the word you type. Double-click a topic to see the topic or a list of topics containing the keyword.

  Note Depending on the browser you use, the left frame navigational devices are either ActiveX™ controls (on Internet Explorer) or Java controls (on Netscape browsers); therefore, if you do not see the table of contents in the left frame, ensure that you have the following browser settings. For Internet Explorer, set your browser security to Medium and enable ActiveX controls and plug-ins. For Netscape browsers, enable Java and JavaScript.

- Some of the functionality available in the documentation's left frame, such as the table of contents (TOC) synchronization button, may not function properly if you have a previous version of Hhctrl.ocx installed. Because version control for this file has not been activated in the documentation, please search for Hhctrl.ocx and delete any copies of this file found on your local drive. The next time you access the documentation, you will be prompted to accept the certificate that will install the updated TOC control.

# Other Known Problems and Limitations

The following list contains problems and limitations that are known to exist in this release:

- Personal Web Server does not support FTP services.
- If you are upgrading from a previous version of PWS and you have trouble viewing Default.asp, then you probably have an older version of this file. In order to install the newer PWS 4.0 version of this file, you must manually remove the older version of Default.asp. The location is C:\InetPub\Wwwroot.
- In some cases, files left behind from an earlier installation of the FrontPage Server Extensions may prevent newer versions of this component from installing correctly. If PWS Setup reports errors during the installation of FrontPage Server Extensions, or if PWS, Microsoft FrontPage, or Microsoft Visual InterDev fail when connecting to a FrontPage Web, use the following procedure to correct the problem:

1. Run PWS Setup, choose Add/Remove and uninstall the FrontPage Server Extensions.
2. In the \Windows\System\ directory, delete the following files: Fp30txt.dll, Fp30utl.dll and Fp30wel.dll.
3. Delete the \Program Files\Microsoft FrontPage\version3.0 directory including all files and sub-directories.
4. Run IIS Setup and reinstall the FrontPage Server Extensions.

- Errors that occur during unattended setup will be written to the Windows 98 registry. Navigate to the following registry path for error information:
  HKEY_LOCAL_MACHINE\
  Software
  \Microsoft
  \Windows
  \Setup
  \OCmanager
  \Errors
- Running Personal Web Server 4.0 on a computer with an Intel 486 processor that is slower than 50 MHz and has 16 megabytes or less of RAM, increases the likelihood that the script engines degrade into a memory heap packing mode, a process which will prevent the the server from accepting new connections. The heap packing process may take 20 to 30 minutes to complete (depending on the speed of the microprocessor).
- Active Server Pages

- If the only database you use with Active Server Pages® (ASP) is Microsoft SQL Server—that is, you never use Microsoft Access (.mdb) files with ASP—and you create instances of the Database Access Component that you store in the Session object, you can enhance performance by changing the threading model for Database Access Component instances from Apartment to Both in the registry. To change from Apartment to Both, double-click Makefre15.bat in the Program Files\Common Files\System\Ado folder.

To reverse this process, (that is, to change the threading model from Both to Apartment) double-click Makeapt15.bat in the Program Files\Common Files\System\Ado folder.

Note We recommend that you do not store instances of the Database Access Component in the Session object.

- There is a mistake in the ASP documentation which states that the MapPath method does not support relative path syntax, such as ./path or ../path. The MapPath method supports relative path syntax if the Enable Parent Paths metabase property is enabled. When the Enable Parent Paths property is not enabled, using the MapPath method with a relative path results in an error.
- The Scripting.Dictionary object is erroneously marked as Both-threaded. It should be marked as Apartment-threaded. To change this, use the Registry Editor to open the following registry key:
HKEY_CLASSES_ROOT\
CLSID
\{EE09B103-97E0-11CF-978F-00A02463E06F}
\InprocServer32

Change the named value for ThreadingModel to Apartment. If you use the Dictionary object at Application scope without making this change, corruption of data may occur.

- If you change the network bindings on a running Web site with active users, then those users will be disconnected.
- Properties set for the ASP Request, Response, and Server objects are valid only during the processing of a request. For example, if you set a property in Global.asa, such as Response.Buffer = True, the property will only apply to a single request and not to all requests.
- There are currently known problems with using PerlScript with ASP. If you are running PerlScript from ActiveWare, contact ActiveWare for a new PerlScript engine.
- The Scripter's Reference documentation enumerates properties in the MyInfo object and states that Personal Web Server initializes these properties. Although this information is valid for a Macintosh installation of Personal Web Server on the Macintosh computer, this information is may not be valid for a Windows 95 installation of Personal Web Server. None of the properties enumerated in the Scripter's Reference documentation exist when MyInfo is first instantiated. Rather, these properties are created during execution by means of an assignment statement. This means that if a property does not exist, querying for its value will return an empty string and any attempt to use the property in an expression will return an error.
- If you create or use components developed in Microsoft® Visual Basic 5.0™ (Enterprise or Professional Editions) for use with ASP, it is strongly recommended that you upgrade to Visual Studio 97 Service Pack 2, both for your development and server computers.

You can download the Visual Studio 97 Service Pack 2 at http://www.microsoft.com/vstudio/sp/.

- When running Java components on a busy server, it is possible for the java virtual machine (VM) to become locked during initialization, as a result of being initialized from 40 or more threads. This only occurs the first time the Java VM is initialized per process. As a workaround, add the following code to the Global.asa file for your application (the "YourJavaObject" can be a dummy component that does nothing).

    <SCRIPT LANGUAGE=vbscript  RUNAT=SERVER>

    Sub Application_OnStart
    	set initobj = Server.CreateObject("YourJavaObject")

    End Sub

    </SCRIPT>

- You can only publish files from your local drive. For security reasons, the Personal Web Manager publishing wizard will not publish a file that resides on a network drive.
- In the home page wizard of Personal Web Manager, the stylesheet graphics associated with the home page templates are best viewed with Internet Explorer 4.01. Subtle differences between the way the home page template appears in IE 3.0 and Netscape are normal.
- Internet Explorer versions 3.0 and 4.0 ignore line break characters in text fields. To break a line in a text field entry, add the <BR> HTML tag to the end of each line.
- ActiveX Data Objects (ADO) uses the standard COM method of passing error information but ADO does not check to see if any other information has been put into the ErrorInfo object , erasing this object it when it destructs. There is a code workaround for this problem in Microsoft® Visual Basic®, Visual C++®, and Visual J++™ that should be implemented in your error handler.

For Visual Basic, the code should read:

    ErrorHandler:
        ' cleanup
        If Not adoRS Is Nothing Then
    	Set adoRS = Nothing
        End If
        If Not adoConn Is Nothing Then
    	Set adoConn = Nothing
        End If

        Err.Raise Err.Number, "Bank.Accout.Post", Err.Description

    Exit Function

For Visual C++, the code should read:

    //
    // ErrorInfo is saved here because the following
    // ADO cleanup code may clear it.
    //
    IErrorInfo * pErrorInfo = NULL;
    GetErrorInfo(NULL, &pErrorInfo);

    if (adoRsBalance) adoRsBalance->Release();
    if (adoCoConnection) adoCoConnection->Release();

    AtlReportError( CLSID_CAccount, pErrMsg, IID_IAccount, hr);

    //
    // put the error back in TLS
    //
    SetErrorInfo(NULL, pErrorInfo);

For Visual J++, the code should read:

    if (adoRsBalance != null) {
    	if (adoRsBalance.getState() == ObjectStateEnum.adStateOpen)
    		adoRsBalance.Close();
    	ComLib.release (adoRsBalance);
    }

    if (adoConn != null) {
    	if (adoConn.getState() == ObjectStateEnum.adStateOpen)
    		adoConn.Close();
    	ComLib.release (adoConn);
    }

Note In Visual J++ you must explicitly close recordsets and/or connections as well as explicitly release the ADO objects.

- When Remote Data Service (RDS) 1.5 is installed as a server on Windows 95 or Windows 98 Beta using Personal Web Server it does not function. This will be addressed in a later release of the Remote Data Service. Currently, RDS will successfully run from Windows NT Server or Workstation, on x86 or Alpha platforms.
- If you are writing server-side components in Java and you want to use Microsoft® Visual J++™ 1.1 to debug your components, use the following procedure:

1. Build debug .class files for the Java classes you want to debug.
2. Ensure that the PWS application that calls your Java component is set to run in process (the default setting). This debugging mechanism does not work with out of process applications.
3. In Visual J++, open the project containing your Java classes, click the Project menu, click Settings, then click the Debug property sheet.
4. In the Category list, select General.
5. In the Class for debugging/executing box, enter the full class name (including the package name) of the class you want to debug. Do not include a file extension. For example, you can enter "IISSample.HelloWorld" as a class name; Visual J ++ is case sensitive.
6. Under Debug/Execute project under, select Stand-alone interpreter (applications only).
7. In the Category list, select Stand-alone interpreter. Under Stand-alone interpreter, type the full path to the Inetinfo.exe file on your system. For example, if applicable you can type C:\Winnt\System32\Inetsrv\Inetinfo.exe, which is the default location for Inetinfo.exe.
8. Under Stand-alone interpreter arguments type -e w3svc.

Note Leave the Program Arguments box blank, otherwise the procedure will not work.

9. Click OK.
10. in Visual J++, set a breakpoint in your Java class.
11. In the Build menu, choose Start Debug, then click Go.
This step will start Inetinfo.exe as a process.

Note Selecting Execute <class name> will not initiate debugging.

12. After the Visual J++ debugger has started, invoke your Java class by opening the .asp file that invokes your class. You have approximately 30 seconds to invoke your code before the Visual J++ debugger will time out. After the debugger reaches the breakpoint, Visual J++ will no longer enforce the timeout, so you can proceed with debugging your component.

# Providing Feedback

Peer-to-peer newsgroups are available to help you interact with other users of our products, including Microsoft Most Valuable Professionals (MVPs). You can use any newsreader software to access these newsgroups. Regardless of the newsreader or news client you are using, you may need to configure it to read the newsgroups. When prompted for News Server, type msnews.microsoft.com. You do not need to enter an account name or password. Before posting to the newsgroups, please review the Microsoft Newsgroup Rules of Conduct. For more information about Microsoft newsgroups please see http://www.microsoft.com/support/news/ and select Personal Web Server.

Newsgroups supporting the Personal Web Server 4.0 will become available in the near future. You should refresh your newsgroup subscriptions often in order to find the latest newsgroup for this product.

# Copyright Information

© 1997 Microsoft Corporation

These materials are provided “as-is,” for informational purposes only.

Neither Microsoft nor its suppliers makes any warranty, express or implied with respect to the content of these materials or the accuracy of any information contained herein, including, without limitation, the implied warranties of merchantability or fitness for a particular purpose. Because some states/jurisdictions do not allow exclusions of implied warranties, the above limitation may not apply to you.

Neither Microsoft nor its suppliers shall have any liability for any damages whatsoever including consequential, incidental, direct, indirect, special, and lost profits. Because some states/jurisdictions do not allow exclusions of implied warranties, the above limitation may not apply to you. In any event, Microsoft’s and its suppliers’ entire liability in any manner arising out of these materials, whether by tort, contract, or otherwise shall not exceed the suggested retail price of these materials.

Addendum to end-user license agreement for Microsoft Software.