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.
CAUSEURLS 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.
RESOLUTIONMethod 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 bytesWARNING: 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:
- Shut down all IIS services using the Internet Service Manager Program.
- On the Windows Start menu, click Run.
- In the Open box, type regedit and click
OK.
- Select the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters - 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.
- 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.
- On the Registry menu, click Exit.
- 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
STATUSMicrosoft 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: | Major | Last Reviewed: | 6/11/2002 |
---|
Keywords: | kbbug kbusage KB162233 |
---|
|