Isot ja pienet kirjaimet eri merkiksi tulkitsevasta tiedostojärjestelmästä tulee ne samoiksi merkeiksi tulkitseva .NET Framework 2.0 -päivityksen asentamisen jälkeen

Yhteenveto
Kun olet asentanut Microsoft .NET Framework 2.0 -päivityksen, tiedostojärjestelmän isojen ja pienten kirjainten tulkinta muuttuu isot ja pienet kirjaimet eri merkeiksi tulkitsevasta ne samoiksi merkeiksi tulkitsevaksi.
Oire
Oletetaan seuraava skenaario. Otat isot ja pienet kirjaimet eri merkiksi tulkitsemisen käyttöön Microsoft Windows -tiedostojärjestelmästä, jotta Windows ja UNIX voivat toimia yhteen. Asennat Microsoft .NET Framework 2.0 -päivityksen ja käynnistät sitten tietokoneen uudelleen. Tässä skenaariossa tiedostojärjestelmä ei enää tulkitse isoja ja pieniä kirjaimia eri merkeiksi. Koska tiedostojärjestelmä ei enää tulkitse isoja ja pieniä kirjaimia eri merkeiksi, isojen ja pienten kirjainten eri merkeiksi tulkitsemisesta riippuvaisissa sovelluksissa saattaa ilmetä virheitä. Lisäksi tietoja saatetaan menettää tiedostojen vahingossa korvaamisen yhteydessä, kun isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi odottamatta.
Syy
Tämä ongelma ilmenee, koska alkuperäisessä .NET Framework 2.0:n asennusohjelmassa rekisteriavaimen
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
arvoksi määritetään 1. Rekisteriavain
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
määrittää, tulkitseeko tiedostojärjestelmä isot ja pienet kirjaimet eri merkeiksi vai ei. Jos tämän avaimen arvo on 1, tiedostojärjestelmä tulkitsee isot ja pienet kirjaimet samoiksi merkeiksi. Jos tämän avaimen arvo on 0, tiedostojärjestelmä tulkitsee isot ja pienet kirjaimet eri merkeiksi.

Windows Installer -päivityksen toimintatavan vuoksi kukin päivitys tekee rekisterin muutokset uudelleen alkuperäisessä .NET Framework 2.0:n asennusohjelmassa. Tämän vuoksi rekisteriavaimen arvoksi määritetään 1 samalla tavalla kuin .NET Frameworkin asennusohjelmassa. Tämä saattaa korvata käyttäjän tähän avaimeen mahdollisesti määrittämän arvon. Jos esimerkiksi määrität tämän rekisteriavaimen arvoksi 0 (tiedostojärjestelmä, joka tulkitsee isot ja pienet kirjaimet eri merkeiksi) ja asennat ennen 27.11.2006 julkaistun .NET Framework 2.0 -päivityksen, rekisteriavaimen arvo on 1 päivityksen asentamisen jälkeen. Tämän jälkeen tiedostojärjestelmä tulkitsee isot ja pienet kirjaimet samoiksi merkeiksi.

Huomautus Tätä ongelmaa ei ilmene 27.11.2006 jälkeen julkaistuissa .NET Framework 2.0 -päivityksissä.
Workaround
Jos määrität rekisteriavaimen
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
arvoksi 0 tarkoituksella, koska tiedostojärjestelmän on tulkittava isot ja pienet kirjaimet eri merkeiksi, ja jokin .NET Framework 2.0 -päivitys on määrittänyt arvoksi uudelleen 1, määritä kyseisen rekisteriavaimen arvoksi 0 manuaalisesti. Käynnistä järjestelmä uudelleen, jotta muutokset tulevat voimaan. Jos palvelin on esimerkiksi NFS-palvelin, ympäristössä on eri käyttöjärjestelmiä ja rekisteriavaimen arvoksi on määritetty 1, voit määrittää avaimen arvoksi jälleen 0 manuaalisesti.

Huomautus Jos asennat .NET Framework 2.0:n uudelleen tai korjaat jonkin ennen 27.11.2006 julkaistun .NET Framework 2.0 -päivityksen asennuksen tai asennat kyseisen päivityksen uudelleen, sinun on kierrettävä ongelma uudelleen manuaalisesti.
kbsecurity kbprb case insensitive insensitivity .NET Framework 2.0
Ominaisuudet

Artikkelin tunnus: 929110 – Viimeisin tarkistus: 12/03/2007 05:22:07 – Versio: 1.7

Microsoft .NET Framework 2.0, Microsoft .NET Framework 2.0 x64 Edition, Microsoft .NET Framework 2.0 IA64 Edition

  • kbtshoot kbsecurity kbprb KB929110
Palaute