FP97: FrontPage Server Extensions Leak Memory on IIS Server (162233)



The information in this article applies to:

  • Microsoft FrontPage 97 for Windows with Bonus Pack

This article was previously published under Q162233
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

SYMPTOMS

Over time a Microsoft Internet Information Server (IIS) that is running FrontPage 97 Server Extensions may leak memory and slow down due to one of the following reasons:
  • The Uniform Resource Locators (URLs) for files that are being accessed on the server via a Web browser are greater than 512 bytes in length.

    -or-
  • The WWW Service of IIS has been stopped and restarted without stopping all other IIS services.

    -or-
  • You refreshed the Web by recalculating hyperlinks.
These symptoms are not present when you use run-time WebBot components, such as the WebBot Discussion component, the WebBot Save Results component, or ImageMaps.

CAUSE

URLS are longer than 512 bytes

FrontPage 97 includes an Internet Server Application Programming Interface (ISAPI) filter to provide backwards compatibility with FrontPage 1.1 and 1.0 clients. This filter is automatically installed with the FrontPage 97 Server Extensions and is named Fpexedll.dll. When a browser accesses any URL that is longer than 512 bytes on the IIS server, the filter will leak memory. The amount of memory leaked is the total size (in bytes) of the URL. URLs that are shorter than 512 bytes in length do not cause a memory leak.

WWW Service was stopped but other services were not

FrontPage Server Extensions may also cause a 256 Kilobyte (KB) leak if the WWW Service of IIS is stopped without also stopping all other IIS services. The FrontPage 97 Server Extension .dll files are not fully unloaded from memory until all services are stopped and restarted. Stopping and restarting only the WWW Service but leaving the FTP and Gopher services running may cause the FrontPage Server Extension .dlls to leak 256 KB of memory.

FrontPage Webs have been recalculated

Clicking the Recalculate Hyperlinks command on the Tools menu in FrontPage Explorer can cause the FrontPage Server Extensions to leak memory if the content of the web being recalculated is complex or if there are many files in the web. The amount of memory that is leaked is proportional to the complexity of the HTML code and the number of files present in the web.

RESOLUTION

Method 1: Upgrade the IIS Server

Upgrade the IIS server so that you can use the FrontPage 98 Server Extensions. The Server Extensions for FrontPage are available at the following Microsoft World Wide Web site:

Method 2: URLS longer than 512 bytes

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

Stop all IIS services to free memory, and then restart them. Avoid creating URLs that are longer than 512 bytes on the server. Using shorter file names, shorter directory names, and fewer nested directories are all ways to shorten the length of a URL. In addition, if the IIS server running the FrontPage 97 Server Extensions does not need to support FrontPage 1.0 and FrontPage 1.1 clients, remove the backwards compatibility filter to stop the memory leak. To remove the FrontPage 1.0 and FrontPage 1.1 backwards compatibility filter, follow these steps:
  1. Shut down all IIS services using the Internet Service Manager Program.
  2. On the Windows Start menu, click Run.
  3. In the Open box, type regedit and click OK.
  4. Select the following registry key:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters
  5. In the right-hand pane, double-click Filter Dlls.

    The Edit String dialog box appears. The Value Data box contains a comma-separated list of file names.

    IMPORTANT: In the following step, remove the path for the specified file only; do not remove any references to other files. Doing so may cause IIS or programs installed on IIS to function incorrectly or not at all.
  6. In the Value data box, delete the path for Fpexedll.dll. Typically, this path is C:\Program Files\Microsoft FrontPage\bin\fpexedll.dll. Click OK.
  7. On the Registry menu, click Exit.
  8. Restart IIS using the Internet Service Manager.

Method 3: WWW Service was stopped but other services were not

When you stop and restart any single IIS service, always stop and restart the other IIS services.

Method 4: You refreshed the web by recalculating hyperlinks

The Recalculate Hyperlinks code is called whenever you perform the following operations:
  • Publish a complete web to an existing web.
  • Publish a complete web to a new subweb.
  • Create a new subweb.
  • Install FrontPage Server Extensions.
  • Click Recalculate Hyperlinks on the Tools menu in FrontPage Explorer.
All other operations that recalculate hyperlinks use an incremental recalculation that does not result in the symptom described in this article.

To avoid the symptoms associated with the creation of a new web or the publication of content to a new subweb, limit the number of FrontPage users who have rights to administer the FrontPage Web. Only FrontPage administrators can create new subwebs. Administrators should restart the IIS services after the subweb is created.

To avoid the symptoms associated with publishing a complete web to an existing web, authors should copy only changed pages to the existing web. This option is on by default.

Since the IIS administrator must be involved in installing the FrontPage Server Extensions, and since this is usually a one time operation, make sure that you stop and restart the IIS services after the FrontPage Server Extensions are installed.

To avoid the symptoms associated with running the Recalculate Hyperlinks command in FrontPage Explorer, authors should not use this command. The Recalculate Hyperlinks command is not necessary if you save or import your content through FrontPage Explorer. Recalculate Hyperlinks is only necessary if content is added to a web via direct file system access where the FrontPage Server Extensions are not involved, such as with file sharing, Telnet access, or FTP access. Recalculate Hyperlinks also rebuilds the text indexes of a FrontPage web if Microsoft Index Server does not index the web. Although FrontPage accurately adds new values to the indexes whenever new words are typed on a page in the web, the only way to rebuild the text indexes and clear out old entries is to use the Recalculate Hyperlinks command. An IIS server administrator can schedule a Recalculate Hyperlinks operation using the command line version of FrontPage Server Administrator (Fpsrvadm.exe) at a convenient time to avoid the symptoms while keeping both the text indexes and the link databases for manually imported content up to date. For additional information about the FrontPageServer Administrator, click the article number below to view the article in the Microsoft Knowledge Base:

164584 FP97: Command Line Arguments for Server Administrator

STATUS

Microsoft has confirmed that this is a problem in Microsoft FrontPage 97Server Extensions for Internet Information Server (versions 2.0.2.1112 and2.0.2.309). This problem was corrected in FrontPage 98 Server Extensions forInternet Information Server (version 3.0.2.926 or later).

This is not a problem in FrontPage 97 Server Extensions for IIS 1.0 or FrontPage 1.1 Server Extensions for IIS. They are Common Gateway Interface (CGI) programs rather than Internet Server Application Programming Interface (ISAPI) DLLs.

MORE INFORMATION

A memory leak occurs when memory that is assigned to a process by the system is not returned to the system when the process has been completed or when it is not released by the process. Windows NT can usually clean up this unassigned memory and return it to the available pool. With ISAPI DLLs however, the memory allocated by the DLL belongs to the inetinfo process, and if the DLL doesn't release the memory back to the free pool then the un-freed memory will accumulate under the inetinfo process until Inetinfo.exe is shutdown. The FrontPage 97 extensions for IIS 2.0 and 3.0 (shtml.dll, author.dll, admin.dll, fpexedll.dll) are ISAPI DLLs that run within the process of Inetinfo.exe. Once Inetinfo.exe is shutdown then all memory assigned to it is reclaimed by the system. Inetinfo.exe does not shut down until all of its installed services (WWW, FTP, Gopher) are stopped.

Modification Type:MajorLast Reviewed:6/11/2002
Keywords:kbbug kbusage KB162233