2009-08-21 4 views
7

내장 된 세계화 기능을 사용하는 ASP.NET 응용 프로그램이 충돌하는 경우가 있습니다.ASP.NET 세계화 : Culture = "auto"페이지 지시문 중립적 인 문화 충돌?

: 문화 = "자동"지시문 (예 : "에서 zh - 한스"등) 브라우저 언어와 같은 중립적 인 문화를 가지고있는 사용자와 ASP.NET 페이지에서

다음과 같은 예외를 생성합니다 문화 'zh-Hans'는 중립적 인 문화입니다. 형식 지정 및 구문 분석에는 사용할 수 없으므로 스레드의 현재 문화권으로 을 설정할 수 없습니다.

ASP에서 System.Threading.Thread.set_CurrentCulture (CultureInfo를 값)에 System.Web.UI.Page.set_Culture (문자열 값)에 System.Globalization.CultureInfo.CheckNeutral (CultureInfo를 배양)에서

.somePage_aspx .__ BuildControlTree ASP.somePage_aspx.FrameworkInitialize에서 (somePage_aspx의 __CTRL) ()

어떤 아이디어가? Culture/UICulture 매개 변수로 공급되는 쓰레기는 일반적으로 무시되는 것처럼 보이지만이 경우 처리되지 않은 예외가 발생합니다.

답변

2

시작 요청시 문화권을 설정할 수 없습니까? (참고 : asp.net 요청은 스레드간에 이동할 수 있으므로 스레드도 함께 이동해야합니다.)

+0

안녕 Andrew Arnott. 내 <%@Page %>에 culture = "auto"uiculture = "auto"를 배치했습니다. 문화와 마찬가지로 'zh-Hans'도 중립 문화입니다.서식 지정 및 구문 분석에 사용할 수 없으므로 스레드의 현재 문화권으로 설정할 수 없습니다. 단일 페이지에서이 예외는 잘 작동하는 모든 페이지가 남아 있습니다 .------ 제발 도와주세요. –

6

나는 똑같은 문제를 겪고 있었고 한동안 벽에 머리를 내밀어 잠시 동안 내 코를 골랐다. 내가 가진

문제는 CurrentCultureCurrentUICulture의 차이를 이해하지 못하는했다. 차이점은 입니다. CurrentCulture은 날짜, 숫자의 서식을 지정하고 정렬을 수행하는 데 사용됩니다. CurrentUICulture은 리소스에서 문화권 관련 문자열을 조회하는 데 사용됩니다.

나는 당신이 시스템을 얻을 것이다 아닌 특정 문화 형식의 문화 특정 항목에 노력을 시작하는 경우가
return input.ToString("C", System.Globalization.CultureInfo.CurrentCulture); 

를하고해야 할 때

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

처럼 보였다 일부 코드가 있었다 .NotSupportedException.

+0

이것은 똑같은 문제는 아니지만 CurrentUICulture를 통해 중립 문화를 할당하려고 시도하는 코드를 찾고 있어야합니다 CurrentCulture를 통해 액세스 할 수있는보다 구체적인 문화를 기대합니다. – mjallday

관련 문제