2009-08-21 19 views
7

Me encuentro con un caso en el que una aplicación ASP.NET que utiliza las funciones integradas de globalización se bloquea.Globalización de ASP.NET: ¿Cultura = directiva de página "auto" con bloqueo cultural de neutro?

en una página ASP.NET con la cultura directiva = "auto", un usuario con una cultura neutra como su idioma del navegador (por ejemplo "zh-Hans") producirá la siguiente excepción:

Cultura 'zh-Hans' es una cultura neutral. No se puede utilizar en el formato y el análisis y, por lo tanto, no se puede establecer como el cultivo del hilo actual.

en System.Globalization.CultureInfo.CheckNeutral (CultureInfo cultivo) en System.Threading.Thread.set_CurrentCulture (CultureInfo valor) en System.Web.UI.Page.set_Culture (String valor) en ASP .somePage_aspx .__ BuildControlTree (somePage_aspx __ctrl) en ASP.somePage_aspx.FrameworkInitialize()

¿Alguna idea? La basura alimentada a los parámetros Cultura/UICultura generalmente parece ignorarse, pero este caso está causando una excepción no controlada.

Respuesta

3

Primero, puede considerar configurar UICulture = "auto" y Culture = "auto" en su <% @ Page%> declaración.

Ahora, no estoy viendo esta repro en mi instalación de .NET 4.0 (beta), por lo que podría ser un error del producto en .NET 3.5.

Aquí es un gran recurso para aprender sobre las culturas neutrales y la diferencia entre UICulture y Cultura: http://blogs.msdn.com/ddietric/archive/2008/02/05/yacvcp-yet-another-currentculture-vs-currentuiculture-post.aspx

la esperanza de que es muy útil.

2

¿No puede establecer la cultura en la solicitud de inicio? (Nota: las solicitudes de asp.net pueden saltar de un hilo a otro, por lo que también es necesario enganchar el hilo en movimiento).

+0

hola Andrew Arnott. puse culture = "auto" uiculture = "auto" en mi <%@Page %>. Incluso obteniendo la misma excepción que Culture 'zh-Hans' es una cultura neutral.No se puede utilizar en el formateo y el análisis sintáctico y, por lo tanto, no se puede establecer como la cultura actual de la secuencia. esta excepción en una página restante todas las páginas funcionan bien .------ Por favor, ayúdenme –

6

Estaba teniendo el mismo problema y después de golpear mi cabeza contra la pared por un tiempo encontré la respuesta justo debajo de mi nariz.

El problema que tuve fue en no entender la diferencia entre CurrentCulture y CurrentUICulture. La diferencia es CurrentCulture se utiliza para formatear fechas, números y realizar la clasificación, CurrentUICulture se utiliza para buscar cadenas específicas de un recurso.

que tenían un código que parecía

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

cuando debería ser sido

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

Al empezar a tratar de temas específicos de cultivo formato con una cultura no específica obtendrá el Sistema .NotSupportedException.

+0

Puede que este no sea exactamente el mismo problema, pero debería buscar algún código en el que esté tratando de asignar una cultura neutral a través de CurrentUICulture a algo esperando una cultura más específica a la que puedas acceder a través de CurrentCulture. – mjallday

Cuestiones relacionadas