2009-08-21 4 views
7

Ich renne in einen Fall, in dem eine ASP.NET-Anwendung mit den integrierten Globalisierungsfunktionen abstürzt.ASP.NET Globalisierung: Culture = "auto" page Direktive mit neutraler Kultur Crash?

auf einer ASP.NET-Seite mit dem Culture = "auto" Richtlinie, ein Benutzer mit einer neutralen Kultur als ihre Browser-Sprache (wie "zh-Hans") wird die folgende Ausnahme produzieren:

Kultur 'zh-Hans' ist eine neutrale Kultur. Es kann nicht in Formatierung und Analyse verwendet werden und daher kann nicht als aktuelle Kultur des Threads festgelegt werden.

bei System.Globalization.CultureInfo.CheckNeutral (Culture Kultur) bei System.Threading.Thread.set_CurrentCulture ( Culture-Wert) bei System.Web.UI.Page.set_Culture (String -Wert) bei ASP .somePage_aspx .__ BuildControlTree (somePage_aspx __ctrl) bei ASP.somePage_aspx.FrameworkInitialize()

Irgendwelche Ideen? Der in die Culture/UICulture-Parameter eingefügte Müll scheint im Allgemeinen ignoriert zu werden, aber dieser Fall verursacht eine unbehandelte Ausnahme.

Antwort

3

Als Erstes könnten Sie UICulture = "auto" sowie Culture = "auto" in Ihrem System berücksichtigen <% @ Seite%> Deklaration.

Jetzt sehe ich diese Repro auf meiner .NET 4.0 (Beta) Installation nicht, also könnte dies ein Produkt Bug in .NET 3.5 sein.

Hier ist eine großartige Ressource für etwa neutrale Kulturen zu lernen, und die Differenz zwischen UICulture und Kultur: http://blogs.msdn.com/ddietric/archive/2008/02/05/yacvcp-yet-another-currentculture-vs-currentuiculture-post.aspx

Hoffnung, die hilfreich ist.

2

Können Sie nicht die Kultur auf begin Anfrage einstellen? (Hinweis: ASP.NET-Anfragen können zwischen Threads springen, so dass Sie auch in den sich bewegenden Thread einhaken müssen.)

+0

Hallo Andrew Arnott. Ich setzte culture = "auto" uiculture = "auto" in meinem <%@Page %>.Auch auch die gleiche Ausnahme wie Kultur 'zh-Hans' ist eine neutrale Kultur.Es kann nicht zum Formatieren und Parsen verwendet werden und kann daher nicht als aktuelle Kultur des Threads eingestellt werden. Diese Ausnahme in der einzelnen Seite, die alle Seiten gut bleibt. ------ Bitte helfen Sie mir –

6

Ich hatte das gleiche Problem und nachdem ich meinen Kopf eine Weile gegen eine Wand gelehnt hatte, fand ich die Antwort direkt vor meiner Nase.

Das Problem, das ich war und CurrentUICulture nicht verstehen den Unterschied zwischen Current hatte. Der Unterschied ist CurrentCulture wird zum Formatieren von Daten, Zahlen und Sortieren verwendet, CurrentUICulture wird verwendet, um kulturspezifische Zeichenfolgen aus einer Ressource zu suchen.

hatte ich einige Codes, die

return input.ToString("C", System.Globalization.CultureInfo.CurrentUICulture); 

wie

aussah, als es

gewesen sein sollte
return input.ToString("C", System.Globalization.CultureInfo.CurrentCulture); 

Wenn Sie zu Format kulturspezifische Elemente mit einer nicht-spezifischen Kultur zu starten versuchen Sie das System bekommen .NotSupportedException.

+0

Dies ist möglicherweise nicht das exakt gleiche Problem, aber Sie sollten nach etwas Code suchen, wo Sie versuchen, eine neutrale Kultur über CurrentUICulture etwas zuzuordnen Erwartet eine spezifischere Kultur, auf die Sie über CurrentCulture zugreifen können. – mjallday

Verwandte Themen