BUG: Error Initializing the WinInet Cache

ID: Q160060


The information in this article applies to:


SYMPTOMS

When you start an application that uses WinInet functionality (such as Internet Explorer 3.0), the following message might appear:

Error initializing the cache. Shutdown all programs and run ScanDisk or ChkDsk. Delete the cache, cookies and history directories in your Windows directory and then restart Internet Explorer. If the problem persists reinstall Internet Explorer.


CAUSE

This is a problem with the WinInet cache that occurs whenever WinInet is first loaded in the context of a service, such as an ISAPI filter, and then by a user process, such as a browser like Internet Explorer 3.0.

If this problem occurs consistently on a machine that uses Internet Information Server (IIS), this problem could be caused by the use of the WinInet API within an IIS filter DLL. This includes Front Page server extensions that operate as IIS filter DLLs.

Generally, if the WinInet DLL is first loaded by a service, the WinInet cache is initialized in such a way that it cannot be accessed by user-mode programs. IIS filter DLLs are a common cause of this problem because they are loaded in a special Internet user account by IIS.


WORKAROUND

The cache does not work properly in this situation for any user-mode programs, but other WinInet functions are impaired. To work around this problem, either don't use any IIS filter DLL that uses WinInet, or make sure a user-mode WinInet application is running before you start the IIS service.

For example, you could manually start the IIS service after running Internet Explorer 3.0. This causes the WinInet cache to initialize in the user-mode context of Internet Explorer 3.0, thus preventing any filter DLL using WinInet from locking out other user-mode programs from the cache.


STATUS

This problem has been fixed in the latest version of the WinInet DLL, which can be obtained by installing the Internet Explorer 3.02 File Upload Add-On for Windows 95 and NT. It is available at http://www.microsoft.com/msdownload/ieplatform/iewin95/iewin95.htm.

Internet Explorer 3.02 must be installed before applying this Add-On.

The problem has also been fixed in Internet Explorer 4.0.


MORE INFORMATION

The implementation of WinInet uses a memory mapped file (MMF) to share the cache. If IIS, which is a service, has already created the MMF, then non- service applications cannot access the MMF.


REFERENCES

For additional information, please see the following article in the Microsoft Knowledge Base:

Q106387 Sharing Objects with a Service

Additional query words:


Keywords          : kbnetwork kbIE300 kbWinInet iisgeneral iisapi iisFilter 
Version           : 1.0
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: May 3, 1999