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.