Fehlermeldung "Kulturname 'Kultur' wird nicht unterstützt", wenn Sie auf einem Computer, auf dem ein bestimmtes Softwareupdate für .NET Framework 2.0 installiert wurde, eine Anwendung ausführen oder auf eine Website zuzugreifen versuchen


Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
939949 Error message when you run an application or try to access a Web site on a computer that has a particular .NET Framework 2.0 software update installed: "Culture name 'Culture' is not supported"

Problembeschreibung


Sie installieren auf einem Computer mit Microsoft Windows Server 2003 das Softwareupdate zu Microsoft .NET Framework 2.0, das im folgenden Microsoft Knowledge Base-Artikel behandelt wird:
928365 Hinweise zum Sicherheitsupdate zu .NET Framework 2.0 für Windows Server 2003, Windows XP und Windows 2000 vom 10.07.2007
Wenn Sie versuchen, auf dem Computer eine Anwendung auszuführen oder auf eine Website zuzugreifen, wird möglicherweise die folgende Fehlermeldung angezeigt:
[System.ArgumentException] : Culture name 'Culture' is not supported for the following 13 cultures: en-CB az-AZ-Latn uz-UZ-Latn sr-SP-Latn az-AZ-Cyrl uz-UZ-Cyrl sr-SP-Cyrl bs-BA-Cyrl sr-BA-Latn sr-BA-Cyrl bs-BA-Latn iu-CA-Latn div-MV
([System.ArgumentException] : Der Kulturname 'Kultur' wird für die folgenden 13 Kulturen nicht unterstützt: en-CB az-AZ-Latn uz-UZ-Latn sr-SP-Latn az-AZ-Cyrl uz-UZ-Cyrl sr-SP-Cyrl bs-BA-Cyrl sr-BA-Latn sr-BA-Cyrl bs-BA-Latn iu-CA-Latn div-MV)
Falls Ressourcen in einer Anwendung das alte Format für Kulturnamen verwenden, und der Kulturname des Benutzers verwendet das neue Format, findet die Anwendung keine Ressourcen für das alte Format.

Ursache


Bei dem unter "Problembeschreibung" genannten Softwareupdate handelt es sich um ein kumulatives Update für .NET Framework 2.0. Das Update beinhaltet Änderungen bei den Kulturnamen. Die neuen Kulturnamen halten sich von der Syntax an die entsprechenden IETF-Standards (RFC 4646 und RFC 4647). Durch die Änderungen bei den Kulturnamen wird sichergestellt, dass die einzelnen Gebietsschemas durchgehend das selbe Kennzeichen haben, wodurch die Interoperabilität verbessert wird.

Die Zuordnung von alten zu neuen Kulturnamen ist hierbei wie folgt:
Alter KulturnameNeuer Kulturname
az-AZ-Latnaz-Latn-AZ
uz-UZ-Latnuz-Latn-UZ
sr-SP-Latnsr-Latn-CS
az-AZ-Cyrlaz-Cyrl-AZ
uz-UZ-Cyrluz-Cyrl-UZ
sr-SP-Cyrlsr-Cyrl-CS
bs-BA-Cyrlbs-Cyrl-BA
sr-BA-Latnsr-Latn-BA
sr-BA-Cyrlsr-Cyrl-BA
bs-BA-Latnbs-Latn-BA
iu-CA-Latniu-Latn-CA
div-MVdv-MV
en-CBen-029

Abhilfe


Zur Umgehung des Problems sollten Sie bei den neuen Gebietsschemas benutzerspezifische Kulturen erstellen, die die alten Kulturnamen verwenden. Gehen Sie dazu folgendermaßen vor.

Hinweis: Um das hier bereitgestellte Beispielprogramm verwenden zu können, müssen Sie .NET Framework 2.0 installiert haben.
  1. Erstellen Sie eine Anwendung, mit der Sie eine benutzerspezifische Kultur erstellen können. Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie auf Start und auf Ausführen, geben Sie notepad ein, und klicken Sie auf OK.
    2. Fügen Sie den folgenden Code in den Editor ein:
      using System;
      using System.Globalization;

      public class MakeCultures
      {
      static void Main()
      {
      CreateCopyCulture("en-029", "en-CB");
      CreateCopyCulture("az-Latn-AZ", "az-AZ-Latn");
      CreateCopyCulture("uz-Latn-UZ", "uz-UZ-Latn");
      CreateCopyCulture("sr-Latn-CS", "sr-SP-Latn");
      CreateCopyCulture("az-Cyrl-AZ", "az-AZ-Cyrl");
      CreateCopyCulture("uz-Cyrl-UZ", "uz-UZ-Cyrl");
      CreateCopyCulture("sr-Cyrl-CS", "sr-SP-Cyrl");
      CreateCopyCulture("bs-Cyrl-BA", "bs-BA-Cyrl");
      CreateCopyCulture("sr-Latn-BA", "sr-BA-Latn");
      CreateCopyCulture("sr-Cyrl-BA", "sr-BA-Cyrl");
      CreateCopyCulture("bs-Latn-BA", "bs-BA-Latn");
      CreateCopyCulture("iu-Latn-CA", "iu-CA-Latn");
      CreateCopyCulture("dv-MV", "div-MV");


      }

      static void CreateCopyCulture(string strRealName, string strAliasName)
      {
      try
      {
      // Create a new culture based on the old name
      CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder(
      strAliasName, CultureAndRegionModifiers.None);

      carib.LoadDataFromCultureInfo(new CultureInfo(strRealName));
      carib.LoadDataFromRegionInfo(new RegionInfo(strRealName));

      carib.Register();

      // Change the existing culture's parent to the old culture
      carib = new CultureAndRegionInfoBuilder(strRealName,
      CultureAndRegionModifiers.Replacement);

      carib.Parent = new CultureInfo(strAliasName);
      carib.Register();

      // Verify they're registered...
      CultureInfo ci = new CultureInfo(strAliasName);
      Console.WriteLine("Aliased culture {0} has parent of {1}.", ci, ci.Parent);
      ci = new CultureInfo(strRealName);
      Console.WriteLine("\"Real\" culture {0} has parent of {1}.", ci, ci.Parent);
      }
      catch (Exception e)
      {
      Console.WriteLine("Unable to create custom culture " + strAliasName);
      Console.WriteLine(e);
      }
      }
      }
      Hinweis: Mit diesem Beispielprogramm werden die übergeordneten Elemente der neuen Kulturen auf die alten Kulturen gesetzt. Die übergeordneten Elemente der alten Kulturen dürfen nicht gleichzeitig neue Kulturen sein, weil es dadurch beim Ressourcen-Lookup zu einer Endlosschleife kommen würde.

    3. Klicken Sie im Menü Datei auf Speichern unter.
    4. Klicken Sie im Dialogfeld Speichern unter auf Eigene Dateien, geben Sie MakeCultures.cs im Feld Dateiname ein, wählen Sie im Feld Dateityp die Option Alle Dateien, und klicken Sie dann auf Speichern.
    5. Schließen Sie Editor.
  2. Führen Sie die Anwendung aus, die Sie in Schritt 1 erstellt haben, um eine benutzerspezifische Kultur zu erstellen. Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie auf Start und auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
    2. Geben Sie cd "Eigene Dateien" ein, und drücken Sie anschließend die [EINGABETASTE].
    3. Geben Sie %windir%\Microsoft.NET\Framework\v2.0.50727\csc /r: sysglobl.dll MakeCultures.cs ein, und drücken Sie anschließend die [EINGABETASTE].
    4. Geben Sie MakeCultures.exe ein, um das Programm zum Erstellen der Kultur auszuführen.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.