2009-08-21 6 views
7

ビルドイングローバリゼーション機能を使用しているASP.NETアプリケーションがクラッシュするケースがあります。ASP.NETグローバリゼーション:Culture = "auto" pageディレクティブと中立カルチャクラッシュ?

:文化=「auto」のディレクティブ、(例えば「ZH-ハンス」など)彼らのブラウザの言語としてニュートラルカルチャを持つユーザーとASP.NETページ

は、次の例外が生成されます文化「zh-Hans」は中立的な文化です。 の書式設定と解析では使用できないため、 の文化として を設定することはできません。 ASPでSystem.Web.UI.Page.set_CultureでSystem.Threading.Thread.set_CurrentCulture(のCultureInfo 値) (文字列 値) でSystem.Globalization.CultureInfo.CheckNeutral(のCultureInfo 培養) で

.somePage_aspx .__ BuildControlTree(somePage_aspx __ctrl)ASP.somePage_aspx.FrameworkInitializeで ()

任意のアイデア? Culture/UICultureパラメーターに入力されるごみは一般的に無視されるようですが、この場合は処理されない例外が発生しています。

答えて

3

まず、UICulture = "auto"とCulture = "auto" <%@ Page%>宣言。

私は.NET 4.0(ベータ版)インストールでこのレプロを見ていないので、これは.NET 3.5の製品バグかもしれません。 http://blogs.msdn.com/ddietric/archive/2008/02/05/yacvcp-yet-another-currentculture-vs-currentuiculture-post.aspx

・ホープ便利です:

はここで、中立の文化とUICultureと文化の違いについて学ぶための素晴らしいリソースです。

2

開始リクエストでカルチャを設定できませんか? (注:asp.netリクエストはスレッド間でジャンプすることができるので、スレッドの移動にもフックする必要があります)

+0

hi 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

関連する問題