FP97: FrontPage Server Extensions Leak Memory on IIS Server

Last reviewed: March 18, 1998
Article ID: Q162233
The information in this article applies to:
  • Microsoft FrontPage 97 for Windows with Bonus Pack

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

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:

   http://www.microsoft.com/frontpage/wpp

Method 2: URLS longer than 512 bytes

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

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" (without the quotation marks) 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 more information about the FrontPage Server Administrator, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q164584
   TITLE     : FP: Command Line Arguments for Server Administrator

STATUS

Microsoft has confirmed this to be a problem in Microsoft FrontPage 97 Server Extensions for Internet Information Server (versions 2.0.2.1112 and 2.0.2.309). This problem was corrected in the FrontPage 98 Server Extensions for Internet 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, as they are Common Gateway Interface (CGI) programs instead of 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.


Additional query words: front page
Keywords : fpext fpiis kbusage kbdta
Version : windows:97
Platform : WINDOWS
Hardware : x86
Issue type : kbbug
Solution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: March 18, 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.