Microsoft KB Archive/271587

= ASP pages use Time/Date format based on user that is logged on =

Article ID: 271587

Article Last Modified on 2/21/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition

-



This article was previously published under Q271587



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

We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security. For more information about IIS security-related topics, visit the following Microsoft Web site:

http://www.microsoft.com/technet/security/prodtech/IIS.mspx



SYMPTOMS
When you view an ASP Web page that returns the date, the format that is displayed may be dependant on the last person that was logged on to the computer. This is actually based on the last time that the cache was &quot;touched&quot; but may be affected by other events that reset the cache. Note that this problem may also affect other regional setting formats.



CAUSE
To improve performance in Microsoft Windows NT, the regional settings are cached, and this cache is used to determine how to format Date and Time strings. Because this is done by a common component, Oleaut32.dll, you receive the format of the last-cached entry. This behavior can result in an inconsistent format that is based on which user last updated the cache.



Service Pack Information
To resolve this problem, obtain the latest service pack for Microsoft Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

Hotfix Information
A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Windows 2000 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix should have the following file attributes or later:

  Date        Time    Version       Size     File name --  02/13/2001  06:58p  2.40.4517.0   143,632  Asycfilt.dll 02/13/2001 06:58p  2.40.4517.0   626,960  Oleaut32.dll 02/13/2001 06:58p  2.40.4517.0   164,112  Olepro32.dll 02/13/2001 05:39p  2.40.4517.0    16,896  Stdole2.tlb 02/13/2001 05:39p  2.40.4517.0   123,152  Iisrtl.dll



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Windows 2000 Service Pack 2.



MORE INFORMATION
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.

For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes

The fix for this problem requires some registry entries for the default behavior to change. This fix affects two components, OLEAUT and IIS. The first change is for the base OLEAUT component, and second is for IIS so that it can enact this change in OLEAUT. There is now a call exposed by OLEAUT that allows you to set the behavior for each process.

The registry entry for OLEAUT can be set globally. This does not override a process that explicitly sets the option by using the exposed call, so setting the following IIS setting overrides the OLEAUT setting.

NOTE: The OLEAUT key may not exist, and if it does not, you must create the key first.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT

VarConversionLocaleSetting = 0,1,2 (DWORD)

You can also set the value for IIS which, again, overrides any global setting for OLEAUT. Moreover, IIS will call this OLEAUT API whether or not the registry entry is set.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\

SetVarConversionLocaleSetting = 0,1,2 (DWORD)

The values of 0, 1, and 2 are defined as follows and are the same for OLEAUT and IIS:

0 - Default behavior as it exists right now. This format is completely random. It is based on the last user or process that set the cache.

1. Format is based on the current identity of the thread requesting these values. This is based on the identity of the thread that makes the call to the OLEAUT32.dll. In the case of IIS, it is the Authenticating User profile settings (since IIS impersonates the authenticating user by default). If the Authenticating user's profile doesn't exist/ or is not loaded into the registry, it defaults to System Default settings from the following registry hive.

HKEY_USERS\.default\Control Panel\International

You can configure your web application in such a way that the impersonated user on a thread requesting these formats is the same user at all times. In this way, you can expect a consistent format.(For example: using Anonymous access on an ASP page would always result in the same date format irrespective of who is logged on to the system and also irrespective of the identity of the actual user requesting the page.)

2 - Format is forced to use the system default regional settings. The system default settings are set for a computer at reboot. The default system settings can be modified by clicking Set Default... in the Regional Settings tool in Control Panel. You can then choose a new locale to be the default locale, and you should then restart your computer. In this case, the date format is not read from the registry but from the Locale.nls file for that locale.

NOTE: Changing the default locale changes all regional settings (time, money, date formats etc.). There is no way to modify a specific setting with in the locale.

Keywords: kbhotfixserver kbbug kbenv kbfix kbqfe kbui KB271587

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.